为了账号安全,请及时绑定邮箱和手机立即绑定

Go 中复数的“实部”和“虚部”有什么区别?

Go 中复数的“实部”和“虚部”有什么区别?

Go
九州编程 2023-05-15 15:04:55
当我遇到一些奇怪的事情时,我正在阅读 Go 的complex128和complex64数据类型的文档:“complex128 是所有具有 float64 实部和虚部的复数的集合。”和:“complex64 是所有具有 float32 实部和虚部的复数的集合。”进一步来说:“实部和虚部。”这是什么意思?一个数字怎么可能是“实数”或“虚数”?
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

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


复数是一个数学概念。


这是一个例子:


import (

  "fmt"

  "math/cmplx"

)

func main() {

  fmt.Println(cmplx.Sqrt(-1))

}

预期输出:


(0+1i)

有一个名为“cmplx”的包可以处理复数。所以 cmplx 的 Sqrt 类似于 math one,但它返回的是一个复数。


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


查看完整回答
反对 回复 2023-05-15
?
万千封印

TA贡献1891条经验 获得超3个赞

唯一特定于 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

}

游乐场


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


查看完整回答
反对 回复 2023-05-15
  • 2 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信