奇趣编程|怎么生成一串真随机数字?

很多朋友习惯用自己的生日、手机号、QQ号等来做密码,这是非常不安全的。

比如说,有些人的QQ空间相册有自己的隐私照片,设置了查看密码,如果这个密码被别人随便猜解出来,极有可能会个人隐私泄露,造成不必要的麻烦。

在这个网络当中,容易就能找到一个人的生日、QQ号等公开信息,别人只需要尝试几次就能猜解出你的密码,如果你很多帐号的密码都是相同的,那别人只需要猜出了一个帐号的密码,其它帐号的密码也全部被知道了。

那用什么样的密码才能更安全呢?每个帐号都用不同的随机数。这样别人无法通过几次尝试来猜解出你的密码,即使花了很多时间精力猜出了一个帐号的密码,也无法通用到其它帐号。

所以,我们很需要生成一串随机数字的方法。

我们可以生成真随机数或伪随机数。“真随机数”,是后面的数字和前面的数字没有关系,是用物理方法来得出来的随机数。而电脑里用固定、可重复的算法算出来的随机数,是“伪随机数”。

怎么手工获取一个物理性的真随机数呢?这里我分享一个自己的方法。

拿出十个硬币,放到一个盒子中,上下左右随便摇晃,打开盒子数一下正面朝上的有多少个,记下这个数字,连续做六次,就得到了一个6位的随机数字。

比如:

第一次,3个正面朝上,记为3;

第二次,5个正面朝上,记为5;

第三次,8个正面朝上,记为8;

第四次,2个正面朝上,记为2;

第五次,4个正面朝上,记为4;

第六次,7个正面朝上,记为7;

最终得到的六位数密码就是“358247”。

此方法人人可用。

奇趣编程|随机数有什么用?

在统计学里面很多地方都要用到随机数。

应用1:随机抽样。在做样本统计分析的时候,我们需要从总体中随机抽取样本。比如说,仓库里的产品需要抽样检测质量,这里可以用电脑随机产生产品编号,将这些随机编号的产品拿出来进行质量检测。再比如,相关部门对食品安全的检测,随机从超市里抽取一种食品进行食品安全检测。随机抽样可以防止某些人找出抽样的规律作弊。

应用2:随机分配。比如超市搞活动,可以从所有的客户当中随机抽出部分客户赠送优惠券。

应用3:随机选择。比如说人工智能中的训练,围棋黑白双方随机下子,将所有的对弈记录成决策树,然后通过剪枝,保留层级多的分支,继续迭代多次训练,就能得到越来越强大的人工智能决策路径。

奇趣编程|什么是真随机数和伪随机数?

在统计学里,随机数是很常见的一个词,随机数就是一个随机的数字,它后面的数字和前面的数字没有任何关系。

真随机数就是“绝对随机”的数字,伪随机数就是“相对随机”的数字。

目前的计算机产生的随机数都是伪随机数,未来的量子计算机有可能基于自然规律产生不可重现的真随机数。