【发布时间】:2022-08-03 01:07:37
【问题描述】:
我想做的是:
生成 6 个随机数乘以一个系数,然后在它们之间相加给我一个介于全面的- 0.5 和全面的+ 0.5。该程序在 Gk_coeff(Gk_coeff[5] 的第六个数字)的最后一个位置的系数 <= 0.1 的情况下运行良好,但是如果我输入 0.11、0.12(如给出的代码)等等,它将停止工作.一定是有原因的,但我实在想不出来。我试过在linux和windows上使用它,问题仍然存在,所以它与系统无关。
#!/usr/bin/env python3
import random
import numpy
overall = 83
Gk_coeff = [ 0.23, 0.23, 0.23, 0.23, 0.07, 0.12 ]
Gk_values = numpy.empty(6, dtype=int)
calculated_overall = 0
while not (overall - 0.5 <= calculated_overall <= overall + 0.5) :
calculated_overall = 0
for i in range (len(Gk_coeff)):
Gk_values[i] = random.randint(overall - 7, overall + 7)
calculated_overall += (Gk_values[i] * Gk_coeff[i])
print(calculated_overall)
-
overall - 0.5 <= calculated_overall被评估为overall - (0.5 <= calculated_overall) -
您还(重新)将
calculated_overall设置为零,每次迭代 -
你的 GK_coef 加起来不等于一。它们加起来是 1.1。因此,平均而言,您应该期望 computed_overall 总体徘徊在 1.1 * 左右。整体越大,就越难达到这一点。
-
[对不起,我发表了评论,然后意识到我误读了您的代码。你评论了我删除的评论,所以也许也删除它,所以线程有效。]
-
对不起,如果这被掩埋了。你的 Gk_coeff 加起来不等于 1。这就是问题所在。