PHP:
Робота з комплексними числами
Як:
PHP надає вбудовану підтримку комплексних чисел за допомогою розширення ext-intl
з класом NumberFormatter
. Ось приклад:
// Переконайтеся, що розширення intl завантажено
if (!extension_loaded('intl')) {
die("Розширення intl не включено. Будь ласка, включіть його для виконання цього коду.");
}
function addComplexNumbers($a, $b) {
// Використовуйте NumberFormatter для розбору і форматування комплексних чисел
$formatter = new NumberFormatter('en_US', NumberFormatter::PATTERN_RULEBASED, 'i = -1;');
// Розбір комплексних чисел із рядків
$numA = $formatter->parse($a, NumberFormatter::TYPE_DOUBLE);
$numB = $formatter->parse($b, NumberFormatter::TYPE_DOUBLE);
// Виконайте додавання
$sum = $numA + $numB;
// Форматуйте результат як комплексне число
return $formatter->format($sum);
}
echo addComplexNumbers('5+3i', '2+7i'); // Вивід: 7+10i
Поглиблений аналіз
До ext-intl
, PHP не мав вродженої підтримки комплексних чисел. Розробники використовували функції або бібліотеки власних класів для роботи з комплексними числами. Комплексні операції могли бути важкими та схильними до помилок, але ext-intl
надає інтернаціоналізований спосіб представлення та розбору комплексних чисел відповідно до бібліотеки ICU.
Однак для виконання серйозніших математичних операцій, деякі могли б користуватися зовнішніми бібліотеками, написаними на більш придатних для математики мов програмування (наприклад, C або Python), і інтегрувати їх через PHP. З точки зору реалізації, ext-intl
виконує це за лаштунками, забезпечуючи точне арифметичне виконання, приховуючи складність від розробника.
Історично комплексні числа сприймалися скептично, отримавши назву ‘уявні’, але згодом вони стали основою в різних наукових і математичних галузях, відкриваючи більше про їх реальне значення, ніж коли-небудь передбачало їх уявне становище.