写一个产生伪随机数的方法

langlang1983 2010-12-31 09:57:40
要求:不允许使用系统时间 以及 JAVA自身带的随机数方法

请问高手,应该怎么解决? 提供下思路,谢谢
...全文
148 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
langlang1983 2010-12-31
  • 打赏
  • 举报
回复
使用不带参数的构造方法构造的Random对象,它的缺省种子就是当前的系统时间的毫秒数。
大_爱 2010-12-31
  • 打赏
  • 举报
回复
这个还用到数学知识了!
茫茫大海 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huntor 的回复:]
线性同余方法(LCG)是个产生伪随机数的方法。

它是根据递归公式:

N[j+1] = (A * N[j] + B ) mod M

其中A,B,M是产生器设定的常数。

LCG的周期最大为M,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:

1. B,M互质;
2. M的所有质因子的积能整除A − 1;
3. 若M是4的倍数,A − 1……
[/Quote]
学习了,谢谢这位兄弟了!
huntor 2010-12-31
  • 打赏
  • 举报
回复
线性同余方法(LCG)是个产生伪随机数的方法。

它是根据递归公式:

N[j+1] = (A * N[j] + B ) mod M

其中A,B,M是产生器设定的常数。

LCG的周期最大为M,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:

1. B,M互质;
2. M的所有质因子的积能整除A − 1;
3. 若M是4的倍数,A − 1也是;
4. A,B,N0都比M小;
5. A,B是正整数。

huntor 2010-12-31
  • 打赏
  • 举报
回复
线性同余
chenfeg 2010-12-31
  • 打赏
  • 举报
回复
就是楼上说的这个意思,
dwphts520 2010-12-31
  • 打赏
  • 举报
回复
自己定义一些符号与数字什么的,然后再弄个随机组合。不也是随机数吗
william_unique 2010-12-31
  • 打赏
  • 举报
回复
对了,用系统时间怎么产生随机数??
william_unique 2010-12-31
  • 打赏
  • 举报
回复
没想到还能用线性同余来做。。
langlang1983 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huntor 的回复:]
线性同余方法(LCG)是个产生伪随机数的方法。

它是根据递归公式:

N[j+1] = (A * N[j] + B ) mod M

其中A,B,M是产生器设定的常数。

LCG的周期最大为M,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:

1. B,M互质;
2. M的所有质因子的积能整除A − 1;
3. 若M是4的倍数,A − 1……
[/Quote]

学习了,但是我初学者,理解起来有点困难。不过还是谢谢你哈

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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