java 怎么随机取出5个0——10的不同随机数?要不同的

作者&投稿:迟钓 (若有异议请与网页底部的电邮联系)
java 怎么随机取出5个0——10的不同随机数?要不同的~

public class TestRandom{
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;
}
}

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;
}
}

试试行不行

两个思路:
1、先将0-10存到一个数组(或者类似的结构)中,每从中取到一个数保存后,将数组中取到的数移除,重复5次即可得到不重复的;
2、在得到一个随机数后,放进一个数组(或者类似的结构)中,然后继续去取随机数,每次取到后检查是不是已经取到过这个数了,若取到过,则跳过直接下一次,若未取到过,则保存后再下一次,每次取数前都检查数组结构中是否已经有5个数。

1.用集合如下:
import java.util.HashSet;
import java.util.Random;
public class T {
public static void main(String[]args){
HashSet<Integer> set=new HashSet<Integer>();//set集合特性不允许放入相同元素
while(true){
if(set.size()==5)
break;
else
set.add(new Random().nextInt(10));
}
for(Integer i:set){
System.out.println(i);
}
}
}

2.数组
import java.util.Random;
public class T {
public static void main(String[]args){
int []a=new int[5];
for(int i=0;i<a.length;i++){
a[i]=new Random().nextInt(10);
for(int j=0;j<i;j++){
if(a[i]==a[j]){
i--;
}
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}

}

int[] a =new int[5];//存放取到的随机数
int index = 0;
while(index<5){
boolean has = false;//标记取到的随机数是否存在

//取1-10的随机数
int temp = (int)(Math.random()*10); //random()返回0.0-1.0的伪随机数,故乘10得0-10的伪随机数

//以下代码检测刚取到的随机数是否已经存在
for(int i=0;i<index;i++){
if(temp==a[i]){
has = true;
}
}
if(!has){
a[index]=temp;
index ++;
}
}

import java.util.random;
public class Random1{
public statci void main(String args[]){
Random ran=new Random();
for(int i=0;i<5;i++){
System.out.println(ran.nextint(100))/*输出小于100的整数*/
}
}
}


敖汉旗17570975420: java 怎么随机取出5个0——10的不同随机数?要不同的 -
柳纪清胃: 两个思路:1、先将0-10存到一个数组(或者类似的结构)中,每从中取到一个数保存后,将数组中取到的数移除,重复5次即可得到不重复的;2、在得到一个随机数后,放进一个数组(或者类似的结构)中,然后继续去取随机数,每次取到后检查是不是已经取到过这个数了,若取到过,则跳过直接下一次,若未取到过,则保存后再下一次,每次取数前都检查数组结构中是否已经有5个数.

敖汉旗17570975420: 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++]);//代码中最好不要出现中文} }

敖汉旗17570975420: 用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是你可以指定随机生成的数据区间在哪,希望能帮到你!

敖汉旗17570975420: 在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("请输入几个数字,用逗...

敖汉旗17570975420: 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这种方法可以随机取数的.详细,望采纳!

敖汉旗17570975420: 随机生成数字(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; } }

敖汉旗17570975420: 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; }...

敖汉旗17570975420: 用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; ...

敖汉旗17570975420: 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 ...

敖汉旗17570975420: Java中6个随机数怎么才能产生两个0 两个1 两个2
柳纪清胃: 这还叫随机数么? 你的意思应该是生成001122的随机排列吧.建议:数组存储这六个数,第一次用6乘以随机数,取走这个结果指定下标的数字,然后从数组中去掉这个数字,数组由6个变为5个,然后5乘以随机数,取走这个结果指定下标的数字,去掉取走的数字,数组大小变为4个,然后继续…………………….由于是规律性的,可以用循环来实现. 另一个办法,用二维数组,其中一列存储001122,另一列存储6个随机数,然后按照这6个随机数排序.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网