java生成7个不同的随机数
publicstaticvoidmain(String[]args){int[]num=newint[36];//声明一个数组接1-36的数字int[]no=newint...
public static void main(String[] args) {
int[] num = new int[36]; // 声明一个数组接1-36的数字
int[] no = new int[7]; // 接7个随机数
int[] noo = new int[7]; // 接输入数的数
// 往num数组里装1-36个数字
for(int i=1;i<37;i++){
num[i-1]=i;
}
// 生成7个不同的随机数
for(int i=0;i<7;i++){
int random = (int)(Math.random()*(37-i));
no[i]=num[random];
num[random]=num[num.length-1-i];
System.out.print(no[i]+"\t");
}
那不对, 请指教 还有没有别的算法, 用循环做和数组做 展开
int[] num = new int[36]; // 声明一个数组接1-36的数字
int[] no = new int[7]; // 接7个随机数
int[] noo = new int[7]; // 接输入数的数
// 往num数组里装1-36个数字
for(int i=1;i<37;i++){
num[i-1]=i;
}
// 生成7个不同的随机数
for(int i=0;i<7;i++){
int random = (int)(Math.random()*(37-i));
no[i]=num[random];
num[random]=num[num.length-1-i];
System.out.print(no[i]+"\t");
}
那不对, 请指教 还有没有别的算法, 用循环做和数组做 展开
6个回答
展开全部
int random = (int)(Math.random()*(37-i));
这一句好像有问题
i == 0的时候, 假如Math.random()是0.995 , 很接近1的时候,(int)(Math.random()*37)就是37,
下一句
no[i]=num[random]; //这里会造成数组越界
可以这样改 (前面没有问题)
// 生成7个不同的随机数
for(int i=0;i<7;i++){
int random = (int)(Math.random()*(36-i)); //改成36
no[i]=num[random];
num[random]=num[num.length-1-i];
System.out.print(no[i]+"\t");
}
你的算法目的是不是 随机生成7个不同的数,这些数 大于等于1 , 小于等于36?
这一句好像有问题
i == 0的时候, 假如Math.random()是0.995 , 很接近1的时候,(int)(Math.random()*37)就是37,
下一句
no[i]=num[random]; //这里会造成数组越界
可以这样改 (前面没有问题)
// 生成7个不同的随机数
for(int i=0;i<7;i++){
int random = (int)(Math.random()*(36-i)); //改成36
no[i]=num[random];
num[random]=num[num.length-1-i];
System.out.print(no[i]+"\t");
}
你的算法目的是不是 随机生成7个不同的数,这些数 大于等于1 , 小于等于36?
2015-12-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
import java.util.Arrays;
import java.util.Random;
public class RandomGenerator {
private Random rand;
public RandomGenerator() {
rand = new Random(System.currentTimeMillis());
}
public int[]next(){
int []ret=new int[4];
for(int i=0;i<ret.length;i++){
ret[i]=rand.nextInt(10);
}
return ret;
}
public static void main(String[] args) {
RandomGenerator generator=new RandomGenerator();
System.out.println(Arrays.toString(generator.next()));
}
}
用Random类的nextInt(int n)就可以生成0-n之间(不包括n)的随机数,然后赋给数组就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int random = (int)(Math.random()*(37-i));有问题
有种很简单的写法如下:
int[] numberArray=new int[7];
for(int i=0;i<7;i++){
//产生1到36中的七个随机数
numberArray[i]=(int)(Math.random()*36+1);
System.out.print(numberArray[i]+"\t");
}
有种很简单的写法如下:
int[] numberArray=new int[7];
for(int i=0;i<7;i++){
//产生1到36中的七个随机数
numberArray[i]=(int)(Math.random()*36+1);
System.out.print(numberArray[i]+"\t");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int random = (Math.random()*370).intValue();//这样才能得到整数.它的范围是( 0,36),不包括36 ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个好像可能会出现相同的数。建议直接生成随机数,加一个判断吧,出现相同的就 继续生成,知道生成7个不同的数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询