本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。
概述:
这里你是不是会说,生成随机数有什么难的?不就是直接使用Java封装好了的random就行了么?当然对于一般情况下是OK的,而且本文要说明的这些算法也是基于这个random库函数的。
本文主要是针对抽样这一行为进行的,而抽样本身有一个隐含的规则就是不要有重复数据。好了,有了这些说明。你可以先尝试着用一些自己的想法来实现不重复地生成随机数。
算法尝试:
一些好的算法出现,往往伴随着一些不那么好的算法。但是对于效果不太好的算法,它们普遍有一个共性,方便理解和实现。下面是通过一个循序渐进的方式来作一个简单地说明。
第一次尝试:朴素随机算法
这个算法很好理解,就是随机!每一次产生一个随机数,并加入集合。
private void simpleRandom(int start, int end, int count) {
System.out.println("朴素随机算法:");
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < count; i++) {
int random = NumberUtils.randomInteger(start, end);
buffer.append(i == 0 ? ("[" + random) : (", " + random));
}
buffer.append(&