Обычно комплексные числа используются для научных приложений и вычислений. Go имплементирует комплексные числа в виде примитивного типа. Научные операции над комплексными числами являются частью пакета math/cmplx
.
Как работать со комплексными числами в Go?
1. Создайте файл complex.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
package main import ( "fmt" "math/cmplx" ) func main() { // комплексные числа // определяются как реальная и воображаемая // часть, определенная float64 a := complex(2, 3) fmt.Printf("Реальная часть: %f \n", real(a)) fmt.Printf("Комплексная часть: %f \n", imag(a)) b := complex(6, 4) // все общие // операции полезны c := a - b fmt.Printf("Разница: %v\n", c) c = a + b fmt.Printf("Сумма: %v\n", c) c = a * b fmt.Printf("Результат: %v\n", c) c = a / b fmt.Printf("Результат: %v\n", c) conjugate := cmplx.Conj(a) fmt.Println("Сопряжение комплексного числа а: ", conjugate) cos := cmplx.Cos(b) fmt.Println("Косинус b: ", cos) } |
2. Запустите код через go run complex.go
;
3. Посмотрите на результат в терминале:
1 2 3 4 5 6 7 8 |
Реальная часть: 2.000000 Комплексная часть: 3.000000 Разница: (-4-1i) Сумма: (8+7i) Результат: (0+26i) Результат: (0.46153846153846156+0.19230769230769232i) Сопряжение комплексного числа а: (2-3i) Косинус b: (26.220553750072888+7.625225809442885i) |
Пакет math/cmplx для работы с комплексными числами
Базовые операторы имплементируются для примитивного типа complex
. Другие операции над комплексными числами предоставляет пакет math/cmplx
. В случае, когда нужны операции с высокой точностью, имплементировать big
не получится.
С другой стороны комплексное число можно имплементировать как реальное, а воображаемую часть выразить через тип big.Float
.
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»