在计算二次方程时,如何在不使用cmath的情况下获得虚数?

时间:2016-03-21 23:44:59

标签: python-2.7 complex-numbers quadratic

当我在做二次方程时,我目前无法理解如何使虚数出现。我的任务是制作二次方程式,并得到虚数,但我很难到达那里。 你能提供的任何帮助都会很棒!

以下是我目前的代码:

import math

    print "Hello, please insert 3 numbers to insert into the quadratic equation."

a = input("Please enter the first value: ")

b = input("Please enter the second value: ")

c = input("Please enter the third value: ")

rootValue = b**2 - 4*a*c

if rootValue < 0:

    print (-b-(rootValue)**(.5)) / (2 * a)

if rootValue > 0:
    print ((-b + (rootValue)**(1/2)) /(2 * a))

if rootValue == 0:
    print -b/(2*a)

请帮忙!!!我现在这么卡住了。 如果rootValue&lt;我认为你必须对这个问题做些什么。 0;但我不知道该怎么做。 我也不允许使用导入cmath&#39;,我应该这样做,这样你就可以这样做。

1 个答案:

答案 0 :(得分:0)

除了如何表示复杂数字之外,您的代码还存在一些问题。请记住,如果rootValue&lt;&gt; 0,总有两个根: (-b +/- sqrt(rootValue)/ 2a

  1. 如果rootValue是正面还是负面无关紧要,那么仍有两个根。你是分支,只提供每种情况下的两个根之一。不需要前两个if语句
  2. 要使rootValue复杂化,以便在取平方根时可以得到复杂的结果,可以将其设置为复数(b 2 - 4 * a * c,0)或(b 2 - 4 * a * c,0)+ 0j。
  3. 你想要为两个根中的每一个提高0.5的功率,而不是(1/2)功率,正如你在一个陈述中所做的那样
  4. 为了完整起见,您可能想要处理a = 0的情况。
  5. 如果您仍有问题,请告诉我们。