Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python代码vs BBC Basic for Windows_Python_Basic - Fatal编程技术网

Python代码vs BBC Basic for Windows

Python代码vs BBC Basic for Windows,python,basic,Python,Basic,我如何才能提高monty hall程序的速度,有趣的是,使用BBC BASIC for Windows编写的相同代码只需Python代码的一半时间就完成了任务 Python代码: 随机导入 t=10000001 j=0 k=0 对于范围(1,t)内的a: p=int(random.random()*3)+1 g=int(random.random()*3)+1 如果p==g: r=int(random.random()*2)+1 如果p==1: r+=1 如果p==2且r==2: r=3 其他:

我如何才能提高monty hall程序的速度,有趣的是,使用BBC BASIC for Windows编写的相同代码只需Python代码的一半时间就完成了任务

Python代码:

随机导入
t=10000001
j=0
k=0
对于范围(1,t)内的a:
p=int(random.random()*3)+1
g=int(random.random()*3)+1
如果p==g:
r=int(random.random()*2)+1
如果p==1:
r+=1
如果p==2且r==2:
r=3
其他:
r=p^g
s=g
f=g^r
如果s==p:
j=j+1
如果f==p:
k=k+1
打印(f“在总共{t-1}次试验后,”)
打印(f“贴纸”将{j}次({int(j/t*100)}%))
打印(f“交换者”将{k}次({int(k/t*100)}%))
BBC基本Windows代码

T%=10000000
对于A%=1到T%
P%=荷兰盾(3)
G%=荷兰盾(3)
如果P%=G%,则
R%=荷兰盾(2)
如果P%=1,则R%+=1
如果P%=2,R%=2,则R%=3
其他的
R%=P%eor G%
恩迪夫
S%=G%
F%=G%提高采收率%
如果S%=P%,则J%=J%+1
如果F%=P%,则K%=K%+1
下一个
打印“总共后”;T%;“审判”
打印“贴纸”字样;J%;“次(“;int(J%/T%*100);”)”
打印“交换者”赢了;K%;“次(“;int(K%/T%*100);”)”

第一件事是更改您的导入:

import random

然后使用:

p = int(random() * 3) + 1
g = int(random() * 3) + 1
您可以做的第二件事是更改您的:

if s == p:
     j = j + 1
if f == p:
     k = k + 1
进入:


你是在要求吗?谢谢你给我指出代码审查的方向
if s == p:
     j = j + 1
if f == p:
     k = k + 1
if s == p:
     j = j + 1
elif f == p:
     k = k + 1