所以我使用嵌套的while循环来尝试和迭代这些函数,我不明白为什么在第二个循环中,等循环通过第二个循环,为什么它一直打印出相同的数字,它应该在后续的循环中变大。
老实说,我不知道我到底搞砸了什么,如果有人能指出问题所在,我会非常感激的。
import math
p = 1
n = 10
while n < 321:
p = 1
while p < 129:
T_serial = n ^ 2
T_parallel = (T_serial / p) + math.log(p)
speed = T_serial / T_parallel
effic = speed / p
result = speed / effic
print(result)
p *= 2
n += 10发布于 2017-02-18 06:48:59
下面向您展示了正在发生的情况:
import math
p = 1.0
n = 10.0
print "n\tp\tresult"
while n < 321.0:
p = 1
while p < 129.0:
#print "n", n, "p", p
T_serial = n**2.0
T_parallel = (T_serial / p) + math.log(p)
speed = T_serial / T_parallel
effic = speed / p
result = speed / effic
print "%s\t%s\t%s" % (n, p, result)
p *= 2.0
n += 10.0输出:
n p result
10.0 1 1.0
10.0 2.0 2.0
10.0 4.0 4.0
10.0 8.0 8.0
10.0 16.0 16.0
10.0 32.0 32.0
10.0 64.0 64.0
10.0 128.0 128.0
20.0 1 1.0
20.0 2.0 2.0
20.0 4.0 4.0
20.0 8.0 8.0
20.0 16.0 16.0
20.0 32.0 32.0
20.0 64.0 64.0
20.0 128.0 128.0
30.0 1 1.0
30.0 2.0 2.0
30.0 4.0 4.0
30.0 8.0 8.0
30.0 16.0 16.0
30.0 32.0 32.0
30.0 64.0 64.0
30.0 128.0 128.0
40.0 1 1.0
[etc...]看看你的effic和result的方程式。最后你就这么做了
results = speed / effic = speed / (speed / p) = p所以难怪它不是你所期望的。每次只需打印p即可。
发布于 2017-02-18 06:54:01
在你的第一个while循环中有一个缩进错误。
import math
p = 1
n = 10
while n < 321:
p = 1
while p < 129:
T_serial = n ^ 2
T_parallel = (T_serial / p) + math.log(p)
speed = T_serial / T_parallel
effic = speed / p
result = speed / effic
print(result)
p *= 2
n += 10https://stackoverflow.com/questions/42308601
复制相似问题