一个生成无重复数字的代码
2009-01-17 15:02
302 查看
具体代码如下:
import java.util.Random;
public class Util{
/**随机对象*/
private static Random rd = null;
/**
* 返回一个无重复的随机数组
* @param src 来源数组,所有的数据都来自该数组
* @return 处理好的数组
*/
public static int[] random(int[] src){
//如果源数组为空,则返回
if(src == null){
return null;
}
rd = new Random();
//创建返回数组
int[] tmp = new int[src.length];
//可供选择的数据个数
int num = src.length;
//抽取到的数组的下标
int index;
//随机抽取,如果某个数字被抽取,则置该数字为0,并放到数组的末尾
for(int i = 0;i < src.length;i++){
//随机生成下标
index = Math.abs(rd.nextInt()) % num;
//取该值
tmp[i] = src[index];
//交换数据
src[index] = src[num - 1];
//可选择数量减少1
num--;
}
//返回
return tmp;
}
public static void main(String[] args){
int[] test = {1,2,3,4,5,6,7,8,9};
int a[] = random(test);
for(int i = 0;i < a.length;i++){
System.out.println(a[i]);
}
}
}
import java.util.Random;
public class Util{
/**随机对象*/
private static Random rd = null;
/**
* 返回一个无重复的随机数组
* @param src 来源数组,所有的数据都来自该数组
* @return 处理好的数组
*/
public static int[] random(int[] src){
//如果源数组为空,则返回
if(src == null){
return null;
}
rd = new Random();
//创建返回数组
int[] tmp = new int[src.length];
//可供选择的数据个数
int num = src.length;
//抽取到的数组的下标
int index;
//随机抽取,如果某个数字被抽取,则置该数字为0,并放到数组的末尾
for(int i = 0;i < src.length;i++){
//随机生成下标
index = Math.abs(rd.nextInt()) % num;
//取该值
tmp[i] = src[index];
//交换数据
src[index] = src[num - 1];
//可选择数量减少1
num--;
}
//返回
return tmp;
}
public static void main(String[] args){
int[] test = {1,2,3,4,5,6,7,8,9};
int a[] = random(test);
for(int i = 0;i < a.length;i++){
System.out.println(a[i]);
}
}
}
相关文章推荐
- 一个生成无重复数字的代码
- 【PHP】php生成一个不重复的数字(订单号、会员号)
- Java中从[1,36]随机生成7个不重复的数字,放入一个数组中
- randnumber_mn.c 生成一个数组,包括k个不重复的整数,并且要求这些整数范围为[m,n),生成的结果中不能包含inum中的数字,size表示inum的长度
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- 记一个生成罗马数字的代码
- ASP中一个很不错的四位数字验证码生成代码 - [ASP程序]
- 开辟一个空房间,随机生成一个有30个数的整形数组,找出其中的重复数字,输出其余数字
- 用Java代码删除一个已排好序链表中重复的数字
- 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从
- 中软面试(一):java写一个随机生成四位数的程序 每位数字不重复
- ASP中一个很不错的四位数字验证码生成代码 - [ASP程序]
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- 福彩双色球中红球由6个1-33之间的数字组合,且不重复,编写代码,使用Set集合来存储随机生成的1-33的数字,然后输出生成的数字
- 随机生成30个数字(范围0-30)存到一个数组中,将数组中重复的数字去除,动态创建数组保存剩下的数字
- 用ASP生成一个不重复的随即数字
- java 生成一个永不重复的数字序列
- 数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:
- 一个自动将状态机生成代码的软件
- 一个命令搞定Java Web通用添删改查及分页代码生成(音视频)