Комплексне число записують у вигляді z = a + b * i, де:
a називають дійсною частиною (дійсним числом),
b називають уявною частиною (теж дійсним числом), а
i називають уявною одиницею, для якої виконується i^2 = -1.
Спряжене до комплексного числа z = a + b * i обчислюють так:
zc = a - b * i
Абсолютну величину (або модуль) числа z означують так:
|z| = sqrt(a^2 + b^2)
Квадрат абсолютної величини обчислюють як добуток z і спряженого до нього zc:
|z|^2 = z * zc = a^2 + b^2
Суму двох комплексних чисел z1 = a + b * i і z2 = c + d * i обчислюють, додаючи їхні дійсні та уявні частини окремо:
z1 + z2 = (a + b * i) + (c + d * i)
= (a + c) + (b + d) * i
Різницю двох комплексних чисел отримують, віднімаючи їхні відповідні частини:
z1 - z2 = (a + b * i) - (c + d * i)
= (a - c) + (b - d) * i
Добуток двох комплексних чисел означують так:
z1 * z2 = (a + b * i) * (c + d * i)
= (a * c - b * d) + (b * c + a * d) * i
Обернене до ненульового комплексного числа задають так:
1 / z = 1 / (a + b * i)
= a / (a^2 + b^2) - b / (a^2 + b^2) * i
Ділення одного комплексного числа на інше задають так:
z1 / z2 = z1 * (1 / z2)
= (a + b * i) / (c + d * i)
= (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i
Піднесення e (основи натурального логарифма) до комплексного показника можна виразити за допомогою формули Ейлера:
e^(a + b * i) = e^a * e^(b * i)
= e^a * (cos(b) + i * sin(b))
Оскільки вбудованою підтримкою комплексних чисел користуватися не можна, реалізуймо такі операції:
Наведені вище інструкції синхронізовано зі спільним репозиторієм, щоб забезпечити узгодженість між усіма мовними треками. Цей додаток дає додаткові розʼяснення або змінює інструкції за потреби, щоб краще узгодити їх із цілями треку Clojure.
У цій вправі на треку Clojure не потрібно реалізовувати операцію піднесення до степеня.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Clojure, а також 12 концепцій105 вправ та справжнє наставництво від людей, і все це безкоштовно.