乱数在生活中有哪些应用?看完这篇你就明白了!

天美租号

最近,就琢磨起“乱数”这玩意儿了。也不是说要搞啥高深研究,就是觉得挺有意思的,想自己动手试试看到底是咋回事。

开始琢磨

这一切得从我前阵子整理旧东西说起。翻出来一副扑克牌,闲着没事就自己在那儿洗牌。洗着洗着我就想,这洗牌不就是想把顺序打乱,让下一次摸到的牌变得不确定,变得“乱”起来嘛那电脑里面的“随机”是怎么弄的?是不是也跟咱们洗牌一个道理?

乱数在生活中有哪些应用?看完这篇你就明白了!

心里有了这个疑问,我就按捺不住想动手试试。 我不是啥专业程序员,就是个爱瞎鼓捣的普通人。所以我的想法很简单,就是想看看电脑咋生成这些“乱七八糟”的数。

动手试试

我打开电脑,先是找了些系统自带的小工具,或者一些在线的随机数生成器。点了几下,确实出来一堆数字,看着好像是挺随机的。但用着用着,我就发现个问题。

有些生成器,你只要设置一个所谓的“种子”,那每次生成的数列都一模一样。这就不对劲了! 这哪叫“乱”?这不成了按剧本走了嘛我要的是那种像洗牌一样,每次结果都出乎意料的感觉。

于是我就想,能不能自己弄个更“土”的法子,模拟一下这种随机性?我琢磨着,人每次操作的时间点总不可能完全一样?哪怕是微妙的差别。我就试着写了个特别简单的脚本,大概意思就是:

    乱数在生活中有哪些应用?看完这篇你就明白了!

  • 等我按下键盘上的某个键。
  • 记录下按下去那一刻的具体时间,精确到毫秒或者更细。
  • 用这个时间数字,做点简单的运算(比如取几位数,或者做个除法取余数啥的)。
  • 把算出来的结果显示出来。

说干就干,我花了点时间,用最基础的命令捣鼓了这么个小程序。跑起来试了试,还真有点意思!每次敲键盘,出来的数字确实都不太一样。虽然简单,但感觉离我想要的“乱”更近了一步。

乱数在生活中有哪些应用?看完这篇你就明白了!

过程中的发现

这肯定不是啥完美的随机。 我自己也知道,如果我敲键盘的速度非常有规律,或者电脑正好卡顿了一下,那出来的数字可能就没那么“乱”了。它强依赖于我按键的那个瞬间,还是有迹可循的。

这跟我一开始想的,彻底打乱顺序,比如像洗牌那样让每张牌的位置都有无数可能性,还是有差距。电脑搞的“伪随机”和这种靠外部物理动作引入的“随机”,感觉是两条路子。

后来我又试了试别的想法,比如结合鼠标移动的位置、敲击键盘的时间间隔等等,想把更多“不确定”的因素揉进去。过程挺折腾的,有时候为了一个小功能得查半天资料,但捣鼓出来看到效果,就觉得挺值的。

一点想法

通过这回自己动手实践,我对“乱数”这东西有了点更实在的感受。 它不像想象中那么神秘,好像凭空变出来一样。背后都是有规则、有算法的,哪怕是试图模拟真实世界的随机,也得找个参照物,像时间、物理动作啥的。

乱数在生活中有哪些应用?看完这篇你就明白了!

感觉这玩意儿离生活挺近的。玩游戏抽卡、搞活动抽奖、甚至天气预报说明天降水概率啥的,背后可能都有类似“乱数”的机制在跑。虽然咱不一定能完全搞懂里面的门道,但知道它不是纯粹的“运气”或者“魔法”,心里就踏实多了。

这回实践记录,主要就是分享下我这个普通人瞎琢磨、动手尝试的过程。没啥高深技术,就是图一乐,顺便满足下自己的好奇心。以后再碰到需要“随机”的场合,大概会多想一层:它这个“乱”,到底是怎么来的?

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,30人围观)

还没有评论,来说两句吧...