gpt4 book ai didi

Ruby 复数格式化师

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:49 24 4
gpt4 key购买 nike

puts 5 / Complex(1, 2)

实际输出:

>>> 1/1-2/1i

预期输出:

>>> 1 - 2i

为什么 Ruby 格式化这个表达式以使其包含有理数?

最佳答案

当然是真的

5/Complex(1, 2) #=> ((1/1)-(2/1)*i)

相同
(1-2i)

但一般来说,由于复数除法1的工作原理,返回的复数的实部和虚部的结果系数不一定是整数,而是有理数。

例如假设

c1 = Complex(1,2)
#=> (1+2i)
c2 = Complex(2,3)
#=> (2+3i)

并且您希望计算这两个数字的商:

c1/c2
#=> ((8/13)+(1/13)*i)

结果必然要用有理分量表示。

现在考虑以下操作。

c2 = Complex(3/4r, 5) #=> ((3/4)+5i)
c3 = Complex(2, 5.0) #=> (2+5.0i)
1 + c1 #=> (2+2i)
1 - c1 #=> (0-2i)
2 * c1 #=> (2+4i)
c1/3 #=> ((1/3)+(2/3)*i)
2.0 * c1 #=> (2.0+4.0i)
c1 + c2 #=> ((7/4)+7i)
c1 + c2 #=> ((7/4)+7i)
c1 * c1 #=> (-3+4i)
c1 * c2 #=> ((-37/4)+(13/2)*i)
c1 * c3 #=> (-8.0+9.0i)
c2 * c3 #=> (-23.5+13.75i)

您可以看到,涉及整数、有理数和 float 组合的算术运算所产生的数据类型规则同样适用于复数的实部和虚部。

1 复数除法解释here

关于Ruby 复数格式化师,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com