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("]");
System.out.println(buffer);
}
private void checkRandom(int start, int end, int count) {
System.out.println("检查存在性随机算法:");
StringBuffer buffer = new StringBuffer();
List<Integer> save = new ArrayList<>();
for (int i = 0; i < count; i++) {
int random = NumberUtils.randomInteger(start, end);
if (exits(save, random)) {
i--;
continue;
}
save.add(random);
buffer.append(i == 0 ? ("[" + random) : (", " + random));
}
buffer.append("]");
System.out.println(buffer);
}
private void removeRandom(int start, int end, int count) {
System.out.println("元素移除随机算法:");
StringBuffer buffer = new StringBuffer();
List<Integer> numbers = initList(start, end);
for (int i = 0; i < count; i++) {
int random = NumberUtils.randomInteger(count - i);
buffer.append(i == 0 ? ("[" + numbers.get(random)) : (", " + numbers.get(random)));
numbers.remove(random);
}
buffer.append("]");
System.out.println(buffer);
}
private void statusRandom(int start, int end, int count) {
System.out.println("状态转移随机算法:");
StringBuffer buffer = new StringBuffer();
int[] status = new int[end + 1];
for (int i = 0; i < count; i++) {
int random = NumberUtils.randomInteger(start, end);
System.err.println(random);
if (status[random] == 0) {
buffer.append(i == 0 ? ("[" + random) : (", " + random));
status[random] = random == end ? start : (random + 1); // 不可能有在start之前的数字
} else {
// 状态转移
int index = random;
do {
index = status[index];
} while (status[index] != 0);
buffer.append(i == 0 ? ("[" + index) : (", " + index));
status[index] = index == end ? start : (index + 1); // 不可能有在start之前的数字
}
}
buffer.append("]");
System.out.println(buffer);
}
private List<Integer> simpleFloyd(List<Integer> list, int count, int start, int end) {
if (count == 0) {
return list;
}
list = simpleFloyd(list, count - 1, start, end - 1);
int random = NumberUtils.randomInteger(start, end);
if (list.contains(random)) {
list.add(end);
} else {
list.add(random);
}
return list;
}
private List<Integer> iterationFloyd(int start, int end, int count) {
System.out.println("迭代Floyd随机算法:");
List<Integer> list = new ArrayList<>();
for (int i = end - count + 1; i < end; i++) {
int random = NumberUtils.randomInteger(start, i);
if (list.contains(random)) {
list.add(i);
} else {
list.add(random);
}
}
return list;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有