台州医养投资公司:取1到3的随机数,为什么计算机每次抽取的都一样???

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 00:17:30
int i=rand()%3+1;
抽取三次,计算机每次都是3,3,2。
为什么???怎么能每次抽取的都不同???
C++
什么叫种子?原谅我的无知.

C++与vb的道理是一样的,只是函数不同而已
在使用随机数函数之前,用这个函数可以初始化随机数种子,这样在以后用的时候就可以了:
srand(time(NULL));

rand( )函数是产生随机数的函数,但是没有srand()函数初始化种子,它产生的随机数叫“伪随机数”,每次运行都一样。

你可以用当前时间作为rand的seed

把种子设一下,或是指定一个不同随机数的函数,根据语言不同而不同。

vb?
使用前Randomize 是VB初始化随机数函数 rand的函数
在Form 的load事件中调用一次就可以了
然后用rand生成随机数
比如:
Private Sub Form_Load()

Randomize

DrawWidth = 2

End Sub
Private Function MyPrint(rx As Integer)

x = Form1.Width / 2
y = Form1.Height / 2

r = Form1.Height / 2
Circle (x, y), rx, RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)

End Function
Private Sub Timer1_Timer()
r1 = Rnd * r
MyPrint (r1)
End Sub
(要绘图把form的AutoRedraw设置为true,就可以演示了)

使用之前,先调用初试化随几数函数:randmoze();