|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这题对萌新来说真难,一开始真是一点思路都没有,只能让豆包给了点思路,当然没有直接要代码。
最后主要还是有两个地方没有想清楚,造成了思维误区
1,第一次比较的时候不知道x应该赋值多少才能正确
2,如果连续数断了,应该重新赋值为1而不是0。
这是我第一次写这么长的代码,大约有60多行,还是用的手机写的。差不多用两个小时,主要还是上边那俩问题,不停的反复实验。当然也多亏了豆包老师的指点,
自己独立思考敲出来的代码和抄别人写出来的代码就是不一样,这题我肯定能记住了,哈哈
import random
counts = int(input("请输入抛硬币的次数:"))
i = 0
n = 0 # 反面次数
m = 0 # 正面次数
x=None #记录上一次结果
y=0 #记录正面连续数
z=0 #记录正面最高连续数
a=0 #记录反面连续数
b=0 #记录反面最高连续数
print("开始抛硬币实验:")
while i < counts:
# 1-10随机数,奇数=正面,偶数=反面
num = random.randint(1, 10)
if num % 2:
m += 1
# 次数≤100才打印结果
if x==None:
y+=1
elif x==True:
y+=1
else:
y=1
if y>=z:
z=y
if counts <= 100:
print("正面", end=" ")
print("x",x)
print("y",y)
print("z",z)
x=True
else:
n += 1
if x==None:
a+=1
elif x==False:
a+=1
else:
a=1
if a>=b:
b=a
if counts <= 100:
print("反面", end=" ")
print("x",x)
print("a",a)
print("b",b)
x=False
# 只累加一次,避免跳步
i += 1
print() # 换行
print(f"一共模拟了{i}次抛硬币实验,结果如下:")
print(f"正面:{m}次")
print(f"反面:{n}次")
print(f"正面最高连续:{z}次")
print(f"反面最高连续:{b}次")
|
|