java 怎么随机取出5个0——10的不同随机数?要不同的
import java.util.Random;
class GetRandom{
public static void main(String args[]){
Random random1 = new Random();
for(int i =0;i<5;i++){
int x = random1.nextInt(10);
System.out.println(x);
}
}
}
楼上的简化,不知是否有问题,请楼上看下
还有就是未解决重复问题
等会……待会回来 。
随机数应该是整数吧
~~~~~~~~~~~~~修正版~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
import java.util.Random;
class test {
/**
* @param args
*/
public static void main(String[] args) {//随机取出5个0-10的 不同 随机数(整数),若带有浮点数可自行修改
// TODO Auto-generated method stub
Random random1 = new Random();
int count = 0;
int[] cache =new int[5];
while(count<5){
int x = random1.nextInt(10);
if(!isEqual(x,cache)){
//count++;
cache[count]=x;
count++;
System.out.println(x);
}
else;
}
}
private static Boolean isEqual(int x,int[] cache){
for(int i=0;i<cache.length;i++){
if(x == cache[i])
return true;
}
return false;
}
}
试试行不行
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]+"");
}
你的算法目的是不是 随机生成7个不同的数,这些数 大于等于1 , 小于等于36?
public static void main(String[] args){
Random a=new Random();
int s[]=new int[5];
for (int i = 0; i < s.length;) {
s[i]=a.nextInt(10);
if(CheckRandom(s,s[i],i)){
System.out.println("第"+(i+1)+"个随机数是:"+s[i]);
i++;
}
}
}
public static boolean CheckRandom(int c[],int t,int l){//检查生成的随机数是否存在与数组中
for (int i = 0; i < c.length; i++) {
if(c[i]==t&&l!=i){
return false;
}
}
return true;
}
}
大概有2中思想
1:声明1个长度为5的数组第一次取出一个随即数放到数组中然后下标+1在取一个数和数组中的数做比较如果不同就放进去直到取到5个数
2:有个长度为10的数组里面放着0-10,每次生成一个0-9的随即数作为数组的下标然后把值取出来做个循环循环依次和循环中 数组[i]的值交换位置然后在取出数组的前5个数就行
不知道大家还有更好的方法没有有的话可以联系我
import java.util.Random;
public class TestForRandom {
private Random r = new Random();
public static void main(String args[]){
TestForRandom t = new TestForRandom();
t.value();
}
public void value(){
for(int i = 0;i<5;i++)
System.out.println(generate());
}
public int generate(){
return r.nextInt(177);
}
}
萌新首答
利用set集合属性:
@Test
public void testRandom(){
Random r=new Random();
Set<Integer> set=new HashSet<Integer>();
do{
int x=r.nextInt(10);
set.add(x);
}while(set.size()<5);
Iterator<Integer> it=set.iterator();
while(it.hasNext()){
System.out.print(it.next());
}
}
希望可以对答主有帮助!
邓友利妥: 两个思路:1、先将0-10存到一个数组(或者类似的结构)中,每从中取到一个数保存后,将数组中取到的数移除,重复5次即可得到不重复的;2、在得到一个随机数后,放进一个数组(或者类似的结构)中,然后继续去取随机数,每次取到后检查是不是已经取到过这个数了,若取到过,则跳过直接下一次,若未取到过,则保存后再下一次,每次取数前都检查数组结构中是否已经有5个数.
宜川县13232343393: java中怎么实现产生1到10之间的5个随机数,我的程序怎么不对啊? - ?
邓友利妥: public class Random1{public static void main(String args[]) {int a[] = new int[10];for (int i = 0; i <= 5; i++) {a[i] = (int) (Math.random() * 10);//这个地方不能写成(int)Math.random()这是最大的错误 //其他地方乱七八糟的,我就自己写了}for (int i = 0; i < 5;)System.out.println(i + " : " + a[i++]);//代码中最好不要出现中文} }
宜川县13232343393: 用JAVA语言 for语句写五个随机的数字 - ?
邓友利妥: public static void main(String[] args) { Random d = new Random(); for (int i = 0; i < 5; i++) { System.out.println(d.nextInt(500)); } } 500是你可以指定随机生成的数据区间在哪,希望能帮到你!
宜川县13232343393: 在java中 如何随机排列几个数字 - ?
邓友利妥: import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Random;public class test1 { public static void main(String arg[]){String str="";Random rd=new Random();int num;System.out.print("请输入几个数字,用逗...
宜川县13232343393: JAVA中如何产生5个从1到33之间不相同的随机数,在线等 - ?
邓友利妥: import java.util.*; public class test { public static void main(String[] args){ Random rand = new Random(); for (int i = 0; iSystem.out.println(rand.nextInt(33)); } } } 在java中有random这种方法可以随机取数的.详细,望采纳!
宜川县13232343393: 随机生成数字(0或1)的程序 - ?
邓友利妥: 非常简单,Java可以用 Math.random() 方法生成0~1之间的伪随机数.返回值是一个 double 型,然后判断如果在0~0.4就是1,否则就是0.代码:public int getRandom_0_1(){ double d = Math.random(); if (d < 0.4) { return 1; }else { return 0; } }
宜川县13232343393: JAVA编程,随机输入5个数字,取这5个数字中的最小数,大家帮忙,我是初学者 - ?
邓友利妥: import javax.swing.*; public class FiveNumber { public static void main(String args[]) { int min=0; int temp;for(int i=1;i<=5;i++) { temp=Integer.parseInt(JOptionPane.showInputDialog(“Input Number:”)); if(i==1) min = temp; if(temp<min) min=temp; }...
宜川县13232343393: 用java语言求出两个0和五个1的所有组合情况的算法,贴代码 - ?
邓友利妥: public class TestZuHe { public static void main(String[] args) { //先假设这七个数都为1 int[] tt=new int[]{1,1,1,1,1,1,1}; for (int i = 0; i < tt.length; i++) { tt[i]=0;//假设第i个数为0,则在它之后的数为0就有7-i种情况 for (int j = i+1; j < tt.length; j++) { tt[j]=0; ...
宜川县13232343393: java编写一个程序, 程序运行后随即产生5个数字,并输出其中最大值和最小值,代码 - ?
邓友利妥: 代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29publicclassMax1 {publicstaticvoidmain(String[] args) {int[] arr = newint[5];for(inti = 0; i < arr.length; i++) {arr[i] = (int)(Math.random()*100);}Max1 ...
宜川县13232343393: Java中6个随机数怎么才能产生两个0 两个1 两个2?
邓友利妥: 这还叫随机数么? 你的意思应该是生成001122的随机排列吧.建议:数组存储这六个数,第一次用6乘以随机数,取走这个结果指定下标的数字,然后从数组中去掉这个数字,数组由6个变为5个,然后5乘以随机数,取走这个结果指定下标的数字,去掉取走的数字,数组大小变为4个,然后继续…………………….由于是规律性的,可以用循环来实现. 另一个办法,用二维数组,其中一列存储001122,另一列存储6个随机数,然后按照这6个随机数排序.