JAVA 获取一个四位随机数(并且四位数不重复),并说明原理和算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 获取一个四位随机数(并且四位数不重复),并说明原理和算法相关的知识,希望对你有一定的参考价值。
每次获取一个一位数的随机数存在一个 int[4]的整型数组,如果新获取的随机数在整型数组中已经存在了,就再获取一次(使用while循环)。然后把int[4]的数转换成四位数(这个应该简单吧,使用sum=sum*10+a[i]) 参考技术A import java.util.*;public class Get4Number
public static void main(String[] args)
System.out.println(getNumber());
/** 得到一个0-9的随机数 */
private static int getRandomNumber()
return (int) ((Math.random() * 100) % 10);
/** 得到一个四位无重复数字的数 */
private static int getNumber()
Set<Integer> set = new HashSet<Integer>();
while (true)
int a = getRandomNumber();
set.add(new Integer(a));//Set里面的元素是不重复的,如果重复是存不进去的。
if(set.size()>3)
break;
int index = (int) ((Math.random() * 100) % 4);
if(index==0)index+=1;
Integer[] arr = new Integer[set.size()];
set.toArray(arr);
String s = "";
if(arr[0].intValue()==0)//如果第一位是0,则随机和后面三位交换
Integer temp = arr[0];
arr[0] = arr[index];
arr[index] = temp;
for(int i=0;i<arr.length;i++)
s += arr[i].intValue();
return Integer.parseInt(s);
参考技术B public class fournum
public static void main(String[] args)
int[] num = new int[4];
for (int i = 0; i < 4; i++)
num[i] = (int)Math.floor(Math.random()*10);
for(int j=0;j<i;j++)
while(num[i]==num[j])
num[i] = (int)Math.floor(Math.random()*10);
int answer = num[0]*1000+num[1]*100+num[2]*10+num[3];
System.out.println(answer);
System.out.println((int)Math.floor(Math.random()*10));
public fournum()
// TODO Auto-generated constructor stub
可以直接运行
取4次,每取一次,放入list
每次放入做判定,list里是否已经有此数,如果已存在继续取。
4个string相加 然后 你可以parse成你想要的格式。 参考技术D random类 可以先生成 在判断有重复就重新生成
以上是关于JAVA 获取一个四位随机数(并且四位数不重复),并说明原理和算法的主要内容,如果未能解决你的问题,请参考以下文章