davidxia 发表于 2021-9-23 22:40:03

关于我运用random函数碰到的问题

我是萌新求助大佬
# 导入随机模块 #
import random
# 接收用户输入并将数值赋值给 counts 变量 #
i = 0
counts=input("开始抛硬币实验:")
counts=int(counts)
print("开始抛硬币实验:")
while i < counts:
    # 生成一个随机数num #
    num=random.randint(0,1)
    if num % 2:
      # 打印结果 #
      print("正面",end=" ")
    else:
      # 打印结果 #
      print("反面",end=" ")
    i = i + 1
x=random.getstate()
random.setstate(x)
i=0
print(" \n")
while i < counts:
    # 生成一个随机数num #
    num=random.randint(0,1)
    if num % 2:
      # 打印结果 #
      print("正面",end=" ")
    else:
      # 打印结果 #
      print("反面",end=" ")
    i = i + 1


运行结果如下:
开始抛硬币实验:20
开始抛硬币实验:
反面 反面 正面 反面 正面 正面 反面 正面 反面 正面 反面 反面 正面 反面 反面 正面 反面 反面 反面 反面

反面 正面 正面 反面 反面 反面 反面 反面 反面 反面 正面 正面 正面 正面 正面 反面 正面 反面 正面 反面
>>> 我明明重置了随机状态啊?

为什么第二行跟第一行结果完全不一样呢?
谢谢!


冬雪雪冬 发表于 2021-9-23 22:58:00

这样写就一样了。
import random
# 接收用户输入并将数值赋值给 counts 变量 #
x=random.getstate()
i = 0
counts=input("开始抛硬币实验:")
counts=int(counts)
print("开始抛硬币实验:")
while i < counts:
    # 生成一个随机数num #
    num=random.randint(0,1)
    if num % 2:
      # 打印结果 #
      print("正面",end=" ")
    else:
      # 打印结果 #
      print("反面",end=" ")
    i = i + 1

random.setstate(x)
i=0
print(" \n")
while i < counts:
    # 生成一个随机数num #
    num=random.randint(0,1)
    if num % 2:
      # 打印结果 #
      print("正面",end=" ")
    else:
      # 打印结果 #
      print("反面",end=" ")
    i = i + 1

davidxia 发表于 2021-9-27 20:44:02

冬雪雪冬 发表于 2021-9-23 22:58
这样写就一样了。

懂了懂了谢谢!
页: [1]
查看完整版本: 关于我运用random函数碰到的问题