jk这篇代码写的是一段伪随机数的产生,通过两个变量和一个种子来得到一个和,然后在找一个base,得到的和除以base得到余数, 余数除以base就是我们求的随机数,大家看代码理一下就是了。
代码:
package com.jk.random;
/**
*
* @author jk这篇代码写的是一段伪随机数的产生,通过两个变量和一个种子来得到一个和,然后在找一个base,得到的和除以base得到余数,
* 余数除以base就是我们求的随机数,大家看代码理一下就是了。
*
*/
public class test {
/**
* @param args
*/
public static void main(String[] args) {
//第一个随机数种子
double[] r = new double[] { 5.1 };
for (int i = 0; i < 100; i++) {
System.out.println(rand(r));
}
}
private static double rand(double[] r) {
double base, u, v, p, temp1, temp2, temp3;
base = 256;
u = 17.0;
v = 139.0;
// 计算总值
temp1 = u * (r[0]) + v;
// 计算商
temp2 = (int) (temp1 / base);
// 计算余数
temp3 = temp1 - temp2 * base;
// 更新种子
r[0] = temp3;
// 获得随机数
p = r[0] / base;
return p;
}
}