puts 5/Complex(1, 2)
sortie réelle:Ruby nombre complexe formatage Division
>>> 1/1-2/1i
Résultats escomptés:
>>> 1 - 2i
Pourquoi formater Ruby cette expression pour y inclure des nombres rationnels?
puts 5/Complex(1, 2)
sortie réelle:Ruby nombre complexe formatage Division
>>> 1/1-2/1i
Résultats escomptés:
>>> 1 - 2i
Pourquoi formater Ruby cette expression pour y inclure des nombres rationnels?
Il est vrai, bien sûr que
5/Complex(1, 2) #=> ((1/1)-(2/1)*i)
est le même que
(1-2i)
mais en général, en raison de la façon dont la division complexe des , les coefficients réels de résultant du et Les parties imaginaires du nombre complexe renvoyé ne sont pas nécessairement des entiers, mais sont rationnelles.
Supposons par exemple que
c1 = Complex(1,2)
#=> (1+2i)
c2 = Complex(2,3)
#=> (2+3i)
et que vous vouliez calculer le quotient de ces deux nombres:
c1/c2
#=> ((8/13)+(1/13)*i)
Nécessairement, le résultat doit être exprimé avec des composants rationnels.
Considérez maintenant les opérations suivantes.
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)
Vous pouvez voir que les règles concernant le type de données résultant d'opérations arithmétiques impliquant des combinaisons de nombres entiers, nombres rationnels et à virgule flottante applique également aux parties réelles et imaginaires des nombres complexes.
1 division complexe est expliqué here