package cn.xf.algorithm.ch02;
import java.util.ArrayList;
import java.util.List;
/**
* 生产随机数
* @author xiaof
*
*/
public class Random {
/**
* 生产一个随机数的数列
* @param n 生成n个数列
* @param m 数据在0和m-1之间
* @param seed 随机初始种子
* @param a 参数
* @param b 参数
* @return
*/
public static List<Integer> randomNum(int n, int m, int seed, int a, int b)
{
List<Integer> numbers = new ArrayList<Integer>();
int initData = (a * seed + b) % m;
numbers.add(Math.abs(initData)); //初始化一个数据
for(int i = 1; i < n; ++i)
{
int newData = (a * numbers.get(i - 1) + b) % m;
numbers.add(Math.abs(newData));
}
return numbers;
}
public static void main(String[] args) {
List<Integer> res = Random.randomNum(10, 10, 998, 58797676, 1);
for(int a : res)
{
System.out.print(a + " ");
}
}
}
结果:
