Go中复杂数字的“真实”和“虚构”部分有什么区别?

时间:2018-12-11 06:26:36

标签: go numbers complextype

当我遇到奇怪的事情时,我正在阅读complex128complex64数据类型的Go文档:

  

“ complex128是具有float64实部和虚部的所有复数的集合。”

并且:

  

“ complex64是具有float32实部和虚部的所有复数的集合。”

更具体地说:

  

“实部和虚部”。

这是什么意思? “实数” “虚数”

2 个答案:

答案 0 :(得分:1)

老实说,这个问题不是专门针对GoLang的。

复数是一个数学概念。

这里是一个例子:

import (
  "fmt"
  "math/cmplx"
)
func main() {
  fmt.Println(cmplx.Sqrt(-1))
}

预期输出:

(0+1i)

有一个名为“ cmplx”的软件包可以处理复数。因此,cmplx的Sqrt类似于数学一,但它返回的是复数。

如您所见,输出由01i组成,最后一个是虚部,因为我们无法获得"-1"的平方根。

答案 1 :(得分:1)

有关复数,请参见Wikipedia

唯一的Go主题是Go中内置了“复杂”类型,因此与其他语言不同,您可以在不导入其他程序包的情况下对其执行基本操作:

package main

import (
    "fmt"
)

func main() {
    c1 := 1i
    c2 := 2 + 3i
    fmt.Println(c1 * c1) // i^2 = -1
    fmt.Println(c1 + c2) // i + (2+3i) = 2+4i
}

Playground

要进行更高级的操作,可以使用math/cmplx包,类似于math包中的实数(如习惯答案)。