什么是随机(random)?字典中给出的定义是无计划,无序和无目的,纯靠运气。随机是生活中必不可少的成分,比如彩票,游戏,安全,早餐吃什么,这些行为都有一些随机的成分,但我们能说这些行为都是随机的吗?

      比如早餐,吃的人以为是随机的,做什么吃什么,对厨师而言,可能是精心安排的,就不算随机行为。游戏也是如此,随机掉了一件装备,你如获至宝,其内部是一个概率算法,如果你掌握了这个算法做了一个外挂,对你而言,这也不是随机行为了。同理,很多安全密码的密钥都是随机数,比如核武器的按钮,但难保哪天就被一个天才数学家破解了。

      我的意思是,很难定性判断某一行为是否是随机的。随着我们掌握的信息越来越多,我们的决策算法越来越高效,我们的计算能力越来越强大,进而有能力预测出目前无法预测的随机行为。这就留下了一个有意思的问题,是否真的存在上帝,上帝是否掷骰子(随机行为),在宇宙大爆炸前,上帝是否已经设计好宇宙的发展?而我们的人生,是否早已写好,只是看不见而已呢?当然,目前一切还不得而知,万一宇宙的产生只是一个意外呢

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

      随机并不绝对,但生活中又要用到随机,历史上有很多随机数生成器(random number generator,简称RNG),比如骰子。这方面,我们的祖先甚至写了一本《易经》,可以理解为如何生成随机数并破解随机行为的百科全书。

      根据不同的方法,大概分为两种方式:T(rue)RNG和P(seudo)RNG。两者有什么区别呢?

TRNG

      通过一些物理现象来产生随机数,比如大气层的噪音,元素的衰变和放射,掷骰子等,因为这些行为受到多个自然因素的影响,过程不可预测,所以主观上觉得比较安全。所以,当我们对安全性和经济性上有较高要求时,往往需要采用这类方式产生的随机数,比如彩票,人类不会放心的把这件事情交给机器来处理,一定要有仪式感,让它看上去是随机的。

      然而,公正的行为不一定会产生公平的结果。相比而言,TRNG更大的优势在于不可预测性,但结果上并不一定平均。

PRNG

      伪随机数通过算法产生,计算机因此可以模拟随机行为。但因为有公式,所以只要参数确定,也就是随机的种子,得到的随机结果一定是可重复的。比如如下的通随机数生成公式,给出种子1,就可以得到一系列的随机数。

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

网友评论