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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。