Kotlin:
Робота з комплексними числами
Як це робити:
Давайте визначимо базовий клас комплексного числа в Kotlin:
data class Complex(val real: Double, val imaginary: Double) {
operator fun plus(other: Complex) = Complex(real + other.real, imaginary + other.imaginary)
operator fun minus(other: Complex) = Complex(real - other.real, imaginary - other.imaginary)
operator fun times(other: Complex) = Complex(
real * other.real - imaginary * other.imaginary,
real * other.imaginary + imaginary * other.real
)
override fun toString(): String = "($real + ${imaginary}i)"
}
fun main() {
val a = Complex(1.0, 2.0)
val b = Complex(3.0, 4.0)
println("a + b = ${a + b}") // Вивід: a + b = (4.0 + 6.0i)
println("a - b = ${a - b}") // Вивід: a - b = (-2.0 - 2.0i)
println("a * b = ${a * b}") // Вивід: a * b = (-5.0 + 10.0i)
}
Поглиблений огляд
Комплексні числа вперше були згадані у 16 столітті при розв’язанні кубічних рівнянь, що не мали дійсних рішень. Інженерія та фізика значною мірою виграють від комплексних чисел для аналізу змінних струмів та хвиль. Для складніших розрахунків ви також можете використовувати бібліотеки, як-от koma
чи ejml
від Kotlin.
Операції над комплексними числами повторюють операції з дійсними числами, але зі зверненням уваги на уявну одиницю. Множення, наприклад, слідує за правилом дистрибутивності, пам’ятаючи, що i^2 = -1
. Ця уявна одиниця дає нам можливість представляти багатовимірні числа, які є ключовими у різноманітних наукових обчисленнях.
Дивіться також
Бібліотеки Kotlin Math:
- koma: Бібліотека наукових обчислень для Kotlin.
Додаткове читання про комплексні числа: