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 RandomTestpublic 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]);
我改好了。
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数字的主要内容,如果未能解决你的问题,请参考以下文章