隨機性查看源代码讨论查看历史
随机性(Randomness)这个词是用来表达目的、动机、规则或一些非科学用法的可预测性的缺失。
一个随机的过程是一个不定因子不断产生的重复过程,但它可能遵循某个概率分布 [1] 。
术语随机经常用于统计学中,表示一些定义清晰的、彻底的统计学属性,例如缺失偏差或者相關。随机与任意不同,因为“一个变量是随机的”表示这个变量遵循概率分布。而任意在另一方面又暗示了变量没有遵循可限定概率分布。
物理科學
在19世紀,科學家使用分子的不規則行動的概念去發展統計力學,以解釋熱力學和气体定律的現象。
根據一些量子力學的標準解釋,微觀現象是客觀地隨意。換句話說,在一個所有相關的參量受控的實驗中,也會出現任意變化的情況,例如我們無法預計在受控環境中放置一粒不穩定的原子衰敗的時間,只能計算在指定的時間內衰敗的可能性,所以量子力學計算的是機會率而非單一實驗的結果。Hidden variable theories嘗試避開大自然包含不能降低的隨機性,這樣的理論假定在看上去任意的過程中,有些符合統計分佈而暗藏的特性在幕後運作以得出結果。
生物學
進化論將觀察到的多樣性歸因於隨機突變。由於一些突變的基因帶給了擁有它們的個體更高的存活與繁衍的機會,隨機突變保留在了基因庫中。
生物體的特徵在某种程度上是確定性地發生的(例如:在基因和環境的影響下),在某种程度上是隨機發生的。例如,基因與曝光量僅僅支配著人體皮膚上出現的色斑密度;而單個色斑的精確位置看來是隨機決定的。
通訊理論
在通訊理論中,一個信號的隨機性稱作噪聲,它對立於由源(信號)所引起的那一部分變化。
随机性测试方法
- 频数测试:测试二进制序列中,“0”和“1”数目是否近似相等。如果是,则序列是随机的。=
- 块内频数测试:目的是确定在待测序列中,所有非重叠的长度为M位的块内的“0”和“1”的数目是否表现为随机分布。如果是,则序列是随机的。
- 游程测试:目的是确定待测序列中,各种特定长度的“0”和“1”的游程数目是否如真随机序列期望的那样。如果是,则序列是随机的。
- 块内最长连续“1”测试:目的是确定待测序列中,最长连“1”串的长度是否与真随机序列中最长连“1”串的长度近似一致。如果是,则序列是随机的。
- 矩阵秩的测试:目的是检测待测序列中,固定长度子序列的线性相关性。如果线性相关性较小,则序列是随机的。
- 离散傅里叶变换测试:目的是通过检测待测序列的周期性质,并与真随机序列周期性质相比较,通过它们之间的偏离程度来确定待测序列随机性。如果偏离程度较小,序列是随机的。
- 非重叠模板匹配测试:目的是检测待测序列中,子序列是否与太多的非周期模板相匹配。太多就意味着待测序列是非随机的。
- 重叠模板匹配测试:目的是统计待测序列中,特定长度的连续“1”的数目,是否与真随机序列的情况偏离太大。太大是非随机的。
- 通用统计测试:目的是检测待测序列是否能在信息不丢失的情况下被明显压缩。一个不可被明显压缩的序列是随机的。
- 压缩测试:目的是确定待测序列能被压缩的程度,如果能被显著压缩,说明不是随机序列。
- 线性复杂度测试:目的是确定待测序列是否足够复杂,如果是,则序列是随机的。
- 连续性测试:目的是确定待测序列所有可能的m位比特的组合子串出现的次数是否与真随机序列中的情况近似相同,如果是,则序列是随机的。
- 近似熵测试:目的是通过比较m位比特串与m-1位比特串在待测序列中出现的频度,再与正态分布的序列中的情况相对比,从而确定随机性。
- 部分和测试:目的确定待测序列中的部分和是否太大或太小。太大或太小都是非随机的。
- 随机游走测试:目的是确定在一个随机游程中,某个特定状态出现的次数是否远远超过真随机序列中的情况。如果是,则序列是非随机的。
- 随机游走变量测试:目的是检测待测序列中,某一特定状态在一个游机游程中出现次数与真随机序列的偏离程度。如果偏离程度较大,则序列是非随机的。
科學與隨機
在自然与工程学里一些现象会通过随机性模型来模拟,例如: