Att arbeta med komplexa tal

PHP:
Att arbeta med komplexa tal

Hur:

PHP erbjuder inbyggt stöd för komplexa tal genom att använda ext-intl-tillägget med klassen NumberFormatter. Här är ett exempel:

// Kontrollera att intl-tillägget är laddat
if (!extension_loaded('intl')) {
    die("Tillägget intl är inte aktiverat. Vänligen aktivera det för att köra denna kod.");
}

function addComplexNumbers($a, $b) {
    // Använd NumberFormatter för att tolka och formatera komplexa tal
    $formatter = new NumberFormatter('en_US', NumberFormatter::PATTERN_RULEBASED, 'i = -1;');

    // Tolka komplexa tal från strängar
    $numA = $formatter->parse($a, NumberFormatter::TYPE_DOUBLE);
    $numB = $formatter->parse($b, NumberFormatter::TYPE_DOUBLE);

    // Utför addition
    $sum = $numA + $numB;

    // Formatera resultatet som ett komplext tal
    return $formatter->format($sum);
}

echo addComplexNumbers('5+3i', '2+7i'); // Utdata: 7+10i

Fördjupning

Innan ext-intl hade PHP inte nativt stöd för komplexa tal. Utvecklare använde funktioner eller anpassade klassbibliotek för att hantera komplexa tal. Komplexa operationer kunde vara mödosamma och benägna för fel, men ext-intl erbjuder ett internationaliserat sätt att presentera och tolka komplexa tal i linje med ICU-biblioteket.

Dock, för tyngre matematiska operationer, kan vissa använda externa bibliotek skrivna i mer matematikvänliga språk (som C eller Python) och gränssnittar med dem genom PHP. När det gäller implementeringen hanterar ext-intl det bakom kulisserna och säkerställer korrekt aritmetik samtidigt som det abstraherar komplexiteten från utvecklaren.

Historiskt sett sågs komplexa tal med skepsis och kallades ‘imaginära’, men de har sedan dess blivit grundläggande inom olika vetenskapliga och matematiska områden, vilket avslöjar mer om deras betydelse i den verkliga världen än vad deras imaginära status någonsin antydde.

Se även