Python找到最合适的线条

时间:2016-02-13 16:04:26

标签: python

我是一名高中生,我们需要做一个计算机编码工作,但我有一些困难,我试图在python 3.3.2上打印答案,但这不是我所期望的。我该如何改变这个问题?我搜索了脚本,但我仍然不知道脚本是什么...是否有人可以教我如何修复脚本?我尝试添加()但它仍然无法正常工作...... 给出的问题是enter image description here 我试着制作enter image description here的代码 但它说这是错的......我尝试了几次不同的脚本,但它没有用......

x=[1.0,2.0,3.0]
y=[1.0,3.0,4.0]
a=0
b=0
c=0
sumD=10
for n in range (1000):
    testA = -5.0+n/1000
    for k in range (1000):
        testB = -5.0+k/1000
        for z in range (1000):
            testC = -5.0+z/1000
            testSum=(testA*x[0]**2+testB*x[0]+testC-y[0])**2+(testA*x[1]**2+testB*x[1]+testC-y[1])**2+(testA*x[2]**2+testB*x[2]+testC-y[2])**2
            if testSum < sumD:
                a=testA
                b=testB
                c=testC
a
b
c

代码应该告诉我什么是a,b和c,然后我将能够插入ax ^ 2 + bx + c(该功能),我将需要检查我在网站上的工作。问题是它没有显示a,b和c。我不知道如何解决它!

我试着这样做:

print a
print (a)
print "a"
a

那些不起作用

1 个答案:

答案 0 :(得分:1)

我不确定你要做什么,因为我不太了解你的问题。

不幸的是,代码运行速度非常慢。 (完成大约需要75分钟。)Mabey你应该寻找一个不同的解决方案。 我将其复制出来以获得图像并得到:

x = [1.0, 2.0, 3.0]
y = [1.0, 3.0, 4.0]
a = 0
b = 0
c = 0
sumD = 10

for n in range(1000):
    testA = -5.0 + n / 1000
    for k in range(1000):
        testB = -5.0 + k / 1000
        for z in range(1000):
            testC = -5.0 + z / 1000
            testSum = (testA*x[0]**2+testB*x[0]+testC-y[0])**2+(testA*x[1]**2+testB*x[1]+testC-y[1])**2+(testA*x[2]**2+testB*x[2]+testC-y[2])**2
            if testSum < sumD:
                a = testA
                b = testB
                c = testC

print(a) #This is the correct syntax to use
print(b)
print(c)