【发布时间】:2022-10-31 00:22:57
【问题描述】:
我有 python lcg 生成器(随机)并运行测试功能,但我的 while 循环在第 10 个循环后停止,即使我有条件 True 永远不会停止帮助 guyzzz
import math
def rng(m=2**32, a=1664525, c=1013904223):
rng.current = (a*rng.current + c) % m
return rng.current/m
def runs(fragma):
run=0
while True:
x=rng()
if x<=fragma:
run+=1
else:
return run
return run
# setting the seed
rng.current = 0
u=[]
for i in range(0,100,1):
u.append(rng())
mean=sum(u)/len(u)
variance=sum(pow(x-mean,2) for x in u) / len(u)
standartdeviation=math.sqrt(variance)
print("meso oro:",mean)
print("tipiki apoklisi : ",standartdeviation)
rng.current = 0
i=0.0
y=0
while True: -----------------------------this loop
#rng.current = rng()
i+=0.1
y+=1
print(y)
x=runs(i)
print("for fragma=",i,"--runs==",x)
【问题讨论】:
-
while True循环只有在内部没有可访问的return或break语句时才是无限的,并且您做当x >fragma` 时有一个return语句。 -
不是while循环内部运行函数,而是我要求的函数外部的循环
标签: python