随机数的问题!!高手进!!

ghbiou 2005-05-17 03:06:19
请问在VB中的随机数函数rnd用的是数学中的什么算法??
还有在Turbo C、VC中的随机数函数用的是什么算法??
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
domhuang 2005-05-17
  • 打赏
  • 举报
回复
mark!!!
去google 搜查一下啊
不知算不算是问题。
请教VB 6 中的 x=Rnd 所得到的0-1 之间的所谓随机数,是否有一种算法能得知它的下一个随机数是多少?在不使用 Randomize 的情况下每次都是按顺序。
.705547
.533424
.579518
.289562
我想这些数之间应该会有因果关系或叫算法吧?如您知道该是怎样算法的话请您告诉我好吗?

回答:

一般的伪随机数都是按下面的公式计算的:
r(i) = (A * r(i-1) + B ) Mod m, i = 1, 2, ...
p(i) = r / m
这里A、B、m。例如,你可以选A = 2053、B=13849、m=2^16。虽然VB没有说明Rnd函数使用的是什么算法,但我估计也是采用的是上面的公式,只是A、B和m的取值不同罢了。而Randomize实际指定的是公式中的r(0)。

此问题由李海回答。
ghbiou 2005-05-17
  • 打赏
  • 举报
回复
有没有人知道阿!!高手在吗???微软的大师们在吗??
ChumpKlutz 2005-05-17
  • 打赏
  • 举报
回复
不同的RAND有不同的算法.

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧