① java怎么生成不重复的随机数
没办法,只好把生成的随机数放到set中,以后每次取随机数,判一下set,有的话,重新生成。
② java中如何在0~25的范围内生成五个不重复的数
按照你的要求编写的[0-25]范围内生成五个不重复的整数的Java程序如下
(注意 [0-25]包括0和25两个整数)
publicclassA{
publicstaticvoidmain(String[]args){
int[]a=newint[5];//定义一个5个元素的整型数组用于存放[0-25]范围的五个不重复的整数
inti,count=1;//定义一个整型循环变量i,和一个统计不重复整数个数的整型变量count,初始化为1,表示进入while循环前已经有一个数了.
a[0]=(int)(Math.random()*26);//生成第一个[0-25]的随机整数
while(count<5){//如果生成的随机数不到5个继续循环
inttemp=(int)(Math.random()*26);//生成[0-25]的随机整数,放入临时变量temp
booleanflag=true;//用于判断是否与数组已有整数重复的标志,如果不重复为true,重复为false.
for(i=0;i<count;i++){//数组已有数据循环
if(temp==a[i]){//判断新产生的随机数是否与数组中已有的数据重复
flag=false;//有重复则设置标志为false
break;//有重复退出循环
}
}
if(flag==true){//如果与数组中的数据不重复
a[count]=temp;//把数据赋给数组
count++;//数组中的整数个数加1
}
}
for(i=0;i<a.length;i++){
System.out.print(a[i]+"");//输出[0-25]范围内的五个不重复的整数
}
}
}
③ JAVA中怎样实现数组中随机数不重复
可以参考下面的代码:
public static void main(String[] args) {
int s = -1;
int a[] = new int[100];
int i = 0;
while (i < 100) {
s = (int) (Math.random() * 100 + 1);
for (int j = 0; j < 100; j++) {
if (a[j] == s) {
break;
} else if (j == i) {
a[i] = s;
i++;
break;
}
}
}
}
(3)java不重复数字扩展阅读:
java参考函数
max(x,y) 返回 x 和 y 之间较大的数
min(x,y) 返回 x 和 y 之间较小的数
pow(x,y) 返回 y^x 的值
random() 返回位于 0 到 1 之间的随机函数
round(x) 四舍五进后与整
sin(x) 返回数字的正弦值
sqrt(x) 返回数字的平方根
tan(x) 返回一个角度的正切值
toSource() 显示对象的流代码
valueOf() 返山纳回数教对象的本初值
参激简考资料来源:网络-Java (计算机编程逗铅没语言)
④ java如何生成12位永远不重复的数字
Calendar calendar = Calendar.getInstance();
System.out.println("现在汪搏:"+calendar.getTime().getTime());
calendar.add(Calendar.YEAR, 10);
System.out.println("10年后:"+calendar.getTime().getTime());
时间戳高并发还是会有重复的,你应该每获取一次加1的方法生成。乎亩用锁对象或者把方法声明为synchronized保证并发也不会重复。如果有用数据库,也可以用数据库提供的sequence来帮你生成。
(4)java不重复数字扩展阅读:
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类;
通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文困顷祥件中实现的方法来满足程序的Java API调用。
⑤ JAVA中怎样自动生成不重复的数字
/**
*随机产生指定范围内不重复的数字
*
*@parammin产生最小数字
*@parammax产生最大数字
*@paramcount总共要产生多少个不重复的数
*@returnint数组,是从小到大排序后的结果
*/
publicstaticint[]getRandomNumbers(intmin,intmax,intcount){
intnum=0;
inti=0;
int[]arrs=newint[count];
if(count>(max-min)){
System.out.println("产生的数字个数超出设定最大最小值之间的范围!");
returnnull;
}
while(i<count){
num=(int)(Math.random()*max);
if(num>=min&&!ArrayUtils.contains(arrs,num)){
arrs[i]=num;
i++;
}
}
Arrays.sort(arrs);
returnarrs;
}
⑥ 怎样用java产生一个指定范围而且不重复的随机数
首先,需要一个范围内的随机数,第二部判重,如果重复了就再次随机.
假设我们需要一个m到n的随机数..
需要用到random函数随机一个从0到1的数.然后再乘m到n的范围,再加m
double i = Math.random() * (m - n) + m ----> 生成随机数
判重..方法有很多种了..比如我们用一个Set来存放已经存在的..
Set<Double> set = new LinkedHashSet<>();
if (set.contains(i)) { 重复了,重新随机 }
else { 向set中添加: set.add(Double.valueOf(i)); }
2017年8月28日 21:37:44