python编写程序模拟硬币的投掷,假设0表示硬币的反面,Python抛硬币

  python编写程序模拟硬币的投掷,假设0表示硬币的反面,Python抛硬币

  大蟒实现:链接如下:个人觉得抛硬币并不是真正的随机事件,和抛硬币时候的各种状态参量有关系,那么到底什么是真正的随机?www.zhihu.com

  # -*-编码:utf-8 -*-

  将数组作为铭牌导入

  将matplotlib.pyplot作为血小板计数导入

  # 抛硬币次数

  n_flip=100

  # 硬币弹跳次数

  n_jump=4

  # 是否均匀初值

  is_uniform=True

  # 模拟硬币弹跳

  def sim_coin_jump(x):

  如果是统一的:

  # 均匀初值使用正弦(1000倍1)

  返回np.sin(1000 * x 1)

  否则:

  # 非均匀初值使用正弦(1000x 1)

  返回np.sin(1000 * np.pi * x 1)

  # 模拟抛硬币

  def sim_flip_coin(x,n):

  对于范围内的我(n):

  x=sim_coin_jump(x)

  返回x

  # 初值均匀的随机过程:使用等差序列模拟

  定义制服(f):

  # 均匀间隔

  iterable=(1(10 * *-10)* n for n in range(f))

  返回np.fromiter(iterable,float)

  # 生成非均匀间隔序列

  定义不均匀(f):

  # 非均匀间隔:随着n变化间隔会变小

  iterable=(1(10 * *-10)* NP。范围(f)中n的log(n-1))

  返回np.fromiter(iterable,float)

  # 统计并画图

  def stat_and_draw(R):

  # 统计正负数个数

  pos=np.where(R 0)

  npos=len(R[pos])

  neg=np.where(R 0)

  nneg=len(R[neg])

  # 计算相邻数的乘积期望

  R1=R[:-1]

  R2=R[1:]

  mean=np.mean(np.multiply(R1,R2))

  stat= Statistics:pos[% d]neg[% d]mean[% s] %(NPOs,nneg,mean)

  plt.xlabel(统计)

  # 标题

  title=抛硬币

  para=(%s和coin _ dump[% d]) %( uniform if is _ uniform else unaligned ,n_jump)

  title=para

  工厂名称(标题)

  打印(标题)

  打印(统计)

  # X轴是抛硬币次数编号

  X=np.arange(n_flip)

  # plt.plot(X,R)

  # 红圆圈标记点

  plt.plot(X,R,marker= . ,markeredgecolor=red ,markerfacecolor=red )

  plt.show()

  def flap_coin():

  # 生成初值序列

  如果是均匀的,则S=均匀的(n_flip),否则为不均匀的(翻转)

  # 开始模拟抛硬币

  R=sim_flip_coin(S,n_jump)

  # 统计并画图

  统计和绘图(R)

  if __name__==__main__ :

  flap_coin()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: