计算机如何随机?
程序都是固定的,所以对于一个没有输入的程序,无论用什么算法,只能让每次执行的不同随机数随机,却不能让不同次执行的数随机。
所以一般随机数都需要一些随机种子,一般这种子可能是时间、或者某快内存的当前值,这些数值的分布明显是不随机的,所以目前的计算机无法生成真正的随机数。
我认为这个是当前计算机的体系决定的,跟你后面那个问题无关,既不能佐证,也不能否定。
python中的随机random
random()是Python中生成随机数的函数,是由random模块控制,random()函数不能直接访问,需要导入random 模块,然后再通过相应的静态对象调用该方法才能实现相应的功能。
random.random()
random.random()方法返回一个随机数,其在0至1的范围之内,以下是其具体用法:
import random
print (随机数: , random.random())
输出结果:0.22867521257116
random.uniform()
random.uniform()是在指定范围内生成随机数,其有两个参数,一个是范围上限,一个是范围下线,具体用法如下:
import random
print (random.uniform(2, 6))
输出结果:3.62567571297255
random.randint()
random.randint()是随机生成指定范围内的整数,其有两个参数,一个是范围上限,一个是范围下线,具体用法如下:
import random
print (random.randint(6,8))
输出结果:8
# 每次结果都有随机
random.randrange()
random.randrange()是在指定范围内,按指定基数递增的集合中获得一个随机数,有三个参数,前两个参数代表范围上限和下限,第三个参数是递增增量,具体用法如下:
import random
print (random.randrange(6, 28, 3))
输出结果:15
random.choice()
random.choice()是从序列中获取一个随机元素,具体用法如下:
import random
print (random.choice(www.520m.com))
输出结果:2
print (random.choice([石头, 剪刀, 布]))
输出结果:布
random.shuffle()
random.shuffle()函数是将一个列表中的元素打乱,随机排序,具体用法如下:
import random
num = [1, 2, 3, 4, 5]
random.shuffle(num)
print (num)
输出结果:[3, 5, 2, 4, 1]
random.sample()
random.sample()函数是从指定序列中随机获取指定长度的片段,原有序列不会改变,有两个参数,第一个参数代表指定序列,第二个参数是需获取的片段长度,具体用法如下:
import random
num = [1, 2, 3, 4, 5]
sli = random.sample(num, 3)
print (sli)
输出结果:[2, 4, 5]
random是伪随机数,或称伪乱数,是使用一个确定性的算法计算出来的似乎是随机的数序,因此伪随机数实际上并不随机。