失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 你认为不可能发生的事情有哪些 – PHP基础 – 前端 php获取用户访问

你认为不可能发生的事情有哪些 – PHP基础 – 前端 php获取用户访问

时间:2022-04-19 21:28:00

相关推荐

你认为不可能发生的事情有哪些 – PHP基础 – 前端 php获取用户访问

最硬核的技术博客,使用代码展示一下,出乎人们常识的“不可能”。

大家在生活领域,历史领域,教育领域,艺术领域,

从不同角度口述了一些不可能发生的事。

科技领域,通过代码,让事实说话

硬币问题

概率论,是来自上帝的学问。

经典概率模型中,有一个共同特点:

1 – 试验的样本空间只包含有限个元素;

2 – 试验中每个基本事件发生的可能性相同。

抛硬币问题,就是一个经典的等可能概型。

每一次抛掷硬币,要么正面,要么反面,且正反面出现的机会均等。

更均等的随机函数

大家下面示例,将会使用PHP实现,随机函数使用mt_rand。它可以更好更快地生成随机数。

为了检验其随机性,大家使用一个检测的测试用例,测试一下。代码如下:

经过10^8次方运算,也就是一亿次循环,得到结果如下:

zero = 50005017,[50.005016]; one = 49994984,[49.994984].

zero = 49999797,[49.999797]; one = 50000204,[50.000203].

zero = 50004411,[50.004410]; one = 49995590,[49.995590].

zero = 50003164,[50.003163]; one = 49996837,[49.996837].

zero = 49999658,[49.999658]; one = 50000343,[50.000342].

zero = 50002590,[50.002589]; one = 49997411,[49.997411].

在命令行多终端同时运行,所得结果如上。可见出现0/1的机会均等。

三枚硬币

大家扩展开来说,依次抛出三枚硬币,所得的正反情况。

每一组所得的结果,无外乎下面这几种情况:

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

一共八种情况。

老规矩,运行一亿次,看代码和结果。

各种情况概率很平均,没有明显偏差,这与预期相符。

同样地,一次抛出3枚硬币,所得概率基本相同,代码如下:

结果一样,遵循均等分布。

来玩一把游戏

那么,重点来了,如果大家两个人约定,

依次抛一枚硬币,

遇到 正反反,你给偶一元;

遇到 反反正,偶给你一元;

一起玩儿吗?

本着程序员该有的懒惰,大家使用程序快速模拟这个过程,看看机会是否均等。

如果机会均等,这就拼的是个人运气,无所谓,一切都是天注定,赢了输了认命。

其实这段代码,偶分别使用了10轮,100轮,1000轮,以至一百万轮的结果。

基本印证了一个结果:

上述规则,出现正反反的次数,基本是反反正次数的3倍。

这个游戏是偏离直觉认识的,是不公平的。

不公平之处,就在于前提规则,打断了随机过程。

因为每轮出现正反反,或反反正,立即退出,重新洗牌。

两句多余的话

不要相信直觉,在判断一个规则是否公平之前,还是做好调查、模拟、计算。

直觉,有时候,真的不可信。

如果觉得《你认为不可能发生的事情有哪些 – PHP基础 – 前端 php获取用户访问》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。