2025-06-27 12:10:54
那如果Rnd(2)是产生2个随机数吗
不是!
Rnd(X)中的X是随机函数的种子,一般这个种子是一个整数,例如0、5、8、20、200等等等等,但产生的随机数是一个,注意是一个大于0但小于1的一个纯小数,不会因为种子的不同而不同,在通常默认情况下,种子数应该是0。
如果需要产生一个某一个范围内的随机数,一般采用这样的格式:
产生的随机数 = Int((最大数-最小数) * Rnd + 最小数),这里的Rnd 可以认为是Rnd (0)
例如要产生一个50到100的随机数是:
产生的随机数 = Int((100 - 50) * Rnd + 50)
你讲的‘’如果需要产生一个某一个范围内的随机数,一般采用这样的格式:。。。‘’
这些我懂, 但是好吧 ,我不明白种子的意思 还有你说的上面的Rnd 可以认为是Rnd (0),那可不可以认为Rnd 是Rnd (1),因为你不是说Rnd(1)是产生一个随机数,这个随机数是大于0但小于1的一个纯小数和Rnd (0)一样了。不好意思 这不太明白 可不可以讲一下 谢谢
不要钻牛角尖了,Rnd (0)与Rnd (1)产生的随机数是一样的,产生大于0且小于1的一个纯小数,不因为括号内的数据不同而产生不同的随机数。
在大量程序中,为了区分,有意在括号内填写不同的数字,估计是为了区分以及编程人的可读性吧,再次说明!不是因为括号内的数据不同而产生不同的随机数。
你为什么非要钻这个牛角尖?
2025-06-27 10:52:01
2025-06-27 11:42:50
额 那个我不太明白VB中种子意思,还有
小于 0 每次都使用 number 作为随机数种子得到的相同结果。
大于 0 序列中的下一个随机数。
等于 0 最近生成的数。
省略 序列中的下一个随机数。
不好意思 可不可以不要太官方讲啊 不太理解
这个问题还真不好说得怎么让人明白。你自己试一下下面的三段代码,自己体会吧:
Private Sub Command1_Click()
For i = 1 To 10
Print Int(100 * Rnd(-1));
Next i
End Sub
Private Sub Command2_Click()
For i = 1 To 10
Print Int(100 * Rnd(0));
Next i
End Sub
Private Sub Command3_Click()
For i = 1 To 10
Print Int(100 * Rnd(1));
Next i
End Sub
额 所以这三段代码结果有什么区别啊
这三段的差别就在于Rnd(?),这样就可比较这个参数的意义的。一般我用的时候都是用省略,即同第三段同样的效果。
那个我的意思是这三段最后输出的值有什么区别
你自己运行一下看嘛!
小于 0 每次都使用 number 作为随机数种子得到的相同结果。 --由于number相同导致,随机数都相同。
大于 0 序列中的下一个随机数。----每次都不一样。
等于 0 最近生成的数。 ----每次都一样。
省略 序列中的下一个随机数。----每次都不一样。