thanks,的确有类似贴子,但是如果在极短的时间内要求得到大量的随机数,即便可以得到微秒的值,它似乎也难以胜任。并且C语言中的RANMDOM在初值一样的情况下,一次性调用的随机数是都是一样的。比如第一次调用random(5):1,3,1,4,0第二次仍然如此。因此我认为应该是有公式的。
解决方案 »
- 下了一个activeX控件,不会注册。。
- 项目外包 高薪找人作个游戏外挂
- 怎么为Visual SourceSafe减肥?
- 改变字体的大小,加边框等怎么做
- 求<COM技术内幕>附带光盘,vcleaner(我没做大哥已经很久了.......)老兄听说你有,给我一份吧,谢了。
- 送分了,如何动态改变窗口PropertySheet大小?在线等,马上结帖
- 字符串处理函数
- 求救!图像处理
- help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 是不是所有的标准控件都可以自绘,我想自己绘制一个ScrollBar控件使用它的消息映射机制,但是所有的外形可以自己绘制吗?怎么做??
- 在Windows 下用什么进行C编成?
- /** 键盘被锁定了,怎么办? **/
; 随机数发生器
; 输入:al = 随机数 bit 数
; 返回:eax = 随机数
;********************************************************************
_Random proc uses ebx ecx mov cl,al
xor eax,eax
mov bl,byte ptr dwRandom
and bl,1
Gen_bit: ; make n bit numbers
shl eax,1
mov edx,dwRandom ; Copy seed
shr edx,9
xor bl,dl
shr edx,5
xor bl,dl
bt ebx,1 ; Copy bit 1 to carry flag
rcr dwRandom,1 ; Rotate seed right 1 bit
setc bl ; Set bl TRUE if carry is set
or al,bl dec cl
jnz Gen_bit
ret_Random endp
我粘!!!
但随机函数得到的是伪随机,即只要随机种子初值一样的话其得到的随机数字序列
都是相同的。为了得到比较真一点的随机数,需要初始化随机种子,象C/C++里
是先调用random函数。当然random函数的参数如果是同样的话,得到的随机数序列
也是一样的,所以一般都用time得到一个唯一的数字当参数(是1980年到现在的
秒数)。