java如何生成随机的1-3数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何生成随机的1-3数字相关的知识,希望对你有一定的参考价值。

是随机1-3不是0-3~包括3

//1-3的整数int n = (int)(Math.random() % 3) + 1;其中(int)(Math.random() % 3)生成一个[0,2]之间的数据,然后加1实现平移到1-3 建议阅读我写的随机数字控制的文章:http://blog.csdn.net/Mailbomb/archive/2009/03/11/3981177.aspx 参考技术A public class RandomTest
public static void main(String[] args)
java.util.Random r=new java.util.Random(); //这个是专门产生随机数的类
for(int i=0;i<10;i++)
System.out.println(r.nextInt());


参考技术B public class Test
/**
* @param args
*/
public static void main(String[] args)
java.util.Random r=new java.util.Random(); //这个是专门产生随机数的类
for(int i=0;i<10;i++)
System.out.println("random: "+(r.nextInt(3)+1));



参考技术C 你会生成0-2么,加1就是1-3

以上是个人意见,仅供参考

生成4个随机的不同的数字。JAVA语言。 为啥会产生重复的数字?

import java.util.Random;
public class GuessNumber
public static void main(String []args)
Random r=new Random();
int n[]=new int[4];
for(int i=0;i<4;i++)
n[i]=r.nextInt(10);
for(int j=0;j<i;j++)
System.out.println(j);
if(n[j]!=n[i])
if(j==i-1)
break;


else
n[i]=r.nextInt(10);
System.out.println(j);
continue;



for(int j=0;j<4;j++)
System.out.print(n[j]);



import java.util.Random;
public class GuessNumber
public static void main(String []args)
Random r=new Random();
int n[]=new int[4];
for(int i=0;i<4;i++)
n[i]=r.nextInt(10);
int j=0;
while(j<i)
if(n[i]!=n[j])
j++;

else
n[i]=r.nextInt(10);
j=0;




for(int j=0;j<4;j++)
System.out.print(n[j]);



我改好了。

当然会出现重复的了……既然是随机肯定会有重复值出现。你可以判断一下是否出现过这个值。或者直接把值放进set里面,然后在set的大小为4的时候结束循环,这样就能得到4个不重复的随机数 参考技术A 随机数本身具有不确定性,所以出现四个相同数字也是有可能的 参考技术B import java.util.Random;
public class GuessNumber
public static void main(String []args)
Random r=new Random();
int n[]=new int[4];
for(int i=0;i<4;i++)
int Num=r.nextInt(10);
boolean isrep=false;
for(int k=0;k<i-1;k++)
if(n[k]==Num)//说明前面已经有了这个数,不能要
isrep=true;//表示这个数是重复的
break;

if(isrep==false)//说明Num不重复
//可以写进数组
n[i]=Num;
else//否则是重复的,必须重新产生Num
i--;//i--相当于外层for循环会重新执行一遍



for(int j=0;j<4;j++)
System.out.print(n[j]);




呵呵,就这么简单,我直接写的,并没有测试,但一定会OK的。

那么楼主的问题出现在那里呢?很明显就是在判断产生的这个数是否与前面的书重复失败了,因为产生的这个数不经要与它的前一个数不同,
而且必须与它前面的所有书都不同,所以判断条件应该是与它前面的所有数惊醒比较,都不同则可以。
所以楼主的判断条件 n[i]!=n[i-1],那么它并不是与前面的所有数不重复的充要条件,而这仅仅只是一个必要条件。

以上是关于java如何生成随机的1-3数字的主要内容,如果未能解决你的问题,请参考以下文章

java如何实现这样的随机数字呢?

如何用java随机生成一个字母

如何生成随机的五位数字Java [重复]

如何在SQL里生成四位随机数?

JAVA怎样随机生成10W个数字, 要求: 10W个数字总等于50W而且每个数字最小1最大100, 求代码及思路

C#如何生成随机不重复的数字