对一个一维数组进行随机赋值,然后筛选出重复的元素,并对重复的元素进行重新赋值,保证一维数组所有元素的值互不相同?
用java该如何写这个算法啊?
用java该如何写这个算法啊?
解决方案 »
- java中如何让图片随着窗口的大小一起改变
- 【高分求助】关于线程的问题
- 奇怪的问题:The method a() is undefined for the type print
- oracle 的时间怎么转为yyyyMMddHHmmss
- 求助JAVA项目中调用WINDOWS组件
- 求,java的CRC16校验程序!
- 我想找工作了,我应该拿什么样的作品给人看才容易打动公司呢?
- SQL SERVER数据库操作:cannot be saved.Specify TableName property on DataSet.
- 求救阿!我的毕业设计 现在正在做之中 有一个问题 需要大家解决
- 头痛问题:编译时出错,FileOutputStream类write方法错误
- Properties 取属性文件的问题,可能是编码的问题,请指点一下
- JSP连接数据库出问题,请高手看下,谢谢
我觉得应该对这个数组进行逐一遍历的对比,发现重复的,用不等于重复值的随机数再次进行赋值,应该就可以了吧,前辈们给指教指教?
//先对该数组进行赋值
for(int i = 0;i < 10;i++) {
ball[i] = (int)(Math.random() * 33 + 1);
}
//进行重复检查,并重新赋值
for(int i = 0;i < 10;i++) {
for(int j = i + 1;j < 10;j++) {
if(ball[i] == ball[j]) {
int temp = (int)(Math.random() * 33 + 1);
while(ball[i] == temp) {
temp = (int)(Math.random() * 33 + 1);
}
ball[i] = temp;
}
}
System.out.println(ball[i]);
}
1. 假设一维数据是int[]类型,写一个方法,该方法以int(判断是否出现重复的元素),int[](是否重复出现该元素的数组)为参数,再定义一个计数器,判断前者是否在后者中出现次数是否超过2次,将第二、三.....次出现的下标记住,保存到新建的数组中,返回这个新数组。
2. 将需要判断的数组每个元素都调用这个方法判断一次,每判断一次,修改那些重复的值。缺陷:不排除修改值后,随机生成数字,出现重复的情况。