扫一扫分享
随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。
真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。
在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。
根据密码学原理,随机数的随机性检验可以分为三个标准:
随机数在密码学中非常重要,保密通信中大量运用的会话密钥的生成即需要真随机数的参与。如果一个随机数生成算法是有缺陷的,那么会话密钥可以直接被推算出来。若果真发生这种事故,那么任何加密算法都失去了意义。
编程语言 | 生成随机数的函数/方法 |
---|---|
Java | Math.random()*10 生成一个0到9随机数 |
php | rand(0,10) 生成一个0到10随机数 |
JavaScript | Math.floor(Math.random()*10) 获取0到9的随机整数 |
Python | random.randint(0,10) 生成0到10随机数 |
Go | fmt.Println(rand.Intn(100)) //返回[0,100)的随机整数 |
OC | arc4random_uniform(10 + 1) |
Swift | arc4random() % 10 + 1 |
手机预览