自定义算法实现随机数的生成
2016-10-13 18:03
225 查看
package cn.itcast.shujujiegou.Random1; /** * Created by likailong on 2016/10/13. */ public class Random1 { private static final int A=48271; private static final int M=2147483647; private static final int Q=M/A; private static final int R=M%A; private int state; public Random1(){ state= (int) (System.currentTimeMillis()%Integer.MAX_VALUE); } public int randomInt(){ int tmpState=A*(state%Q)-R*(state/Q); if(tmpState>=0) state=tmpState; else state=tmpState+M; return state; } }
package cn.itcast.shujujiegou.Random1; import com.sun.org.apache.regexp.internal.RE; /** * Created by likailong on 2016/10/13. */ public class Random48 { private static final long A=25_214_903_917L; private static final long B=48; private static final long C=1L; private static final long M=(1L<<B); private static final long MASK=M-1; private long state; public Random48(){ state=System.nanoTime()&MASK; } public int randomInt(){ return next(32); } public double random0_1(){ return ((long)next(26)<<27)+next(27)/(double)(1L<<53); } private int next(int bits) { if(bits<=0||bits>32) throw new IllegalArgumentException(); state=(A*state+C)&MASK; return (int)state>>>(B-bits); } }实现两种随机数的算法 解决了溢出问题
相关文章推荐
- 自定义算法实现随机数的生成
- 自定义算法实现随机数的生成
- 自定义算法实现随机数的生成
- 自定义算法实现随机数的生成
- 实现随机抽样【随机数生成问题】
- java 语言实现的随机数生成算法
- QT实现简单滚动随机数生成程序
- 计算机生成真随机数原理及实现
- 一个简单的随机数生成算法实现(C++)
- 生成一个一维数组,有10个元素,都用随机数填充,用指针轮询的办法实现函数查找一个数是否存在。
- 给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数。 (即,使用函数rand5()来实现函数rand7())
- 一个简单的随机数生成算法实现(C++)
- java实现和电脑猜随机数生成1到100
- asp.net中实现上传文档到服务器端的指定文件夹,并且自动生成随机数更改文档的名字
- C#实现在两个数字之间生成随机数的方法
- Java 语言实现的随机数生成算法
- 利用计算机内部计数器生成真随机数原理及实现
- asp实现生成由数字,大写字母,小写字母指定位数的随机数
- C#实现的不重复随机数序列生成算法
- java 语言实现的随机数生成算法