每种语言 都有随机数对应的api
seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
import random
random.seed(1)
print(random.randint(1,100))
print(random.randint(2,99))
print(random.randint(3,98))
print(random.randint(4,96))
print(random.randint(10,1000))
print("################")
random.seed(2)
print(random.randint(1,100))
print(random.randint(2,99))
print(random.randint(3,98))
print(random.randint(4,96))
print(random.randint(10,1000))
print("################")
random.seed(1)
print(random.randint(1,100))
print(random.randint(2,99))
print(random.randint(3,98))
print(random.randint(4,96))
print(random.randint(10,1000))
相同的代码 python2.7 运行结果
lua中类似代码
local math = require("math")
math.randomseed(1)
print(math.random(1,100))
print(math.random(2,99))
print(math.random(3,98))
print(math.random(4,96))
print(math.random(10,1000))
print("###################")
math.randomseed(1)
print(math.random(1,100))
print(math.random(2,99))
print(math.random(3,98))
print(math.random(4,96))
print(math.random(10,1000))
seed是全局有效,seed函数是保证你每次运行程序生成的顺序相同,而不是保证你每次生成同样的值!!!比如你在程序中randomint()100次,输出100个数,当你第二次运行程序时,如果设置了和第一次相同的seed值,程序会输出和第一次运行同样顺序的100个数。。。
seed函数是保证生成的数序列相同,而不是保证每次生成的值相同!!!!
seed相同,前后 randint(m,n)时,m和n相同,而且都是第N次rand 那么结果就一样。。。