Praca z liczbami zespolonymi

PHP:
Praca z liczbami zespolonymi

Jak?

PHP oferuje wbudowane wsparcie dla liczb zespolonych za pomocą rozszerzenia ext-intl z klasą NumberFormatter. Oto przykład:

// Upewnij się, że rozszerzenie intl jest załadowane
if (!extension_loaded('intl')) {
    die("Rozszerzenie intl nie jest włączone. Proszę je włączyć, aby uruchomić ten kod.");
}

function addComplexNumbers($a, $b) {
    // Użyj NumberFormatter do analizowania i formatowania liczb zespolonych
    $formatter = new NumberFormatter('en_US', NumberFormatter::PATTERN_RULEBASED, 'i = -1;');

    // Analizuj liczby zespolone z ciągów
    $numA = $formatter->parse($a, NumberFormatter::TYPE_DOUBLE);
    $numB = $formatter->parse($b, NumberFormatter::TYPE_DOUBLE);

    // Wykonaj dodawanie
    $sum = $numA + $numB;

    // Sformatuj wynik jako liczbę zespoloną
    return $formatter->format($sum);
}

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

Pogłębienie

Przed ext-intl, PHP nie miało rodzimego wsparcia dla liczb zespolonych. Deweloperzy używali funkcji lub niestandardowych bibliotek klas do obsługi liczb zespolonych. Operacje na liczbach zespolonych mogły być uciążliwe i podatne na błędy, ale ext-intl oferuje zinternacjonalizowany sposób prezentacji i analizy liczb zespolonych, zgodny z biblioteką ICU.

Jednak, w przypadku zaawansowanych operacji matematycznych, niektórzy mogą używać zewnętrznych bibliotek napisanych w bardziej przyjaznych dla matematyki językach (takich jak C lub Python) i łączyć się z nimi za pośrednictwem PHP. Jeśli chodzi o implementację, ext-intl radzi sobie z nią za kulisami, zapewniając dokładne obliczenia matematyczne, jednocześnie abstrahując złożoność od programisty.

Historycznie liczby zespolone były niechętnie przyjmowane, będąc określane jako ‘urojone’, ale od tego czasu stały się fundamentalne w różnorodnych dziedzinach naukowych i matematycznych, pokazując więcej o ich znaczeniu w rzeczywistym świecie, niż sugerowałby ich urojony status.

Zobacz także