生成不重复随机数java
⑴ java怎么生成不重复的随机数
没办法,只好把生成的随机数放到set中,以后每次取随机数,判一下set,有的话,重新生成。
⑵ Java如何让随机数不重复
1.JAVA中生成随机数的方式 1、在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以一个数,比如25,就能得到一个0~25范围内的随机数,这个在j2me中没有...
2.随机给定范围内N个不重复的数 1、方法一:最简单最易理解的两重循环去重 /** * 随机指定范围内N个不重复的数 * 最简单最基本的方法 * @param min 指定范围最小值 * @param max ...
⑶ 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来帮你生成。
(3)生成不重复随机数java扩展阅读:
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类;
通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
⑷ 产生10个范围在1-10之间的不重复的随机数,原样输出,用java中的数组。
import
java.util.Random;
public
class
Rand
{
public
static
void
main(String[]
args)
{
//产生随机数的类
Random
random=new
Random();
//装随机数的数组
10个整数
int[]
num=new
int[10];
//临时存放产生的一个随机数
int
ret=0;
//定义标志位,flag=false代表数组中无重复数,true代表有重复数
boolean
flag=false;
for
(int
i
=
0;
i
<
num.length;)
{
//产生随机数
ret=Math.abs(random.nextInt()%10)+1;
//循环检测该随机数是否与数组中的数重复
for
(int
j
=
0;
j
<
num.length;
j++)
{
//如果存在重复,标志位变为true,并且break退出循环检测
if
(ret==num[j])
{
flag=true;
break;
}else
{
flag=false;
}
}
//如果检测完无重复数据,则将产生的随机数存入数组中,并且数组下标计数加1
if
(!flag)
{
num[i]=ret;
i++;
}
}
//循环输出产生的随机数
for
(int
i
:
num)
{
System.out.print(i+"
");
}
}
}
输出:6
3
5
1
4
10
7
9
8
2
有不明白的请继续问
⑸ java怎么产生不会重复的随机数
//产生20个不重复随机数
publicstaticvoidmain(String[]args){
booleantag=true;
List<Integer>list=newArrayList<>();
for(inti=0;i<20;i++){
intv=(int)(Math.random()*100+1);
for(Integerinteger:list){
if(integer==v){
tag=false;
}
}
if(tag){
list.add(v);
}
}
for(Integerinteger:list){
System.out.println(integer);
}
}
⑹ 如何让JAVA生成不重复随机数
一个不错的算法,很简单,但有效。不过如果范围比较大,则占用内存大,就不推荐使用了。个人感觉1000个以内的就可以考虑。这东西也许你早就知道了,但我依然惊叹算法的力量。看代码 import java.util.*;/** * 生成不重复随机数的一种算法。***/ public class T { public static void main(String args) { // 种子你可以随意生成,但不能重复 int seed = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int ranArr = new int; Random ran = new Random(); // 数量你可以自己定义。 for (int i = 0; i seed.length; i++) { // 得到一个位置 int j = ran.nextInt(seed.length - i); // 得到那个位置的数值 ranArr[i] = seed[j]; // 将最后一个未用的数字放到这里 seed[j] = seed[seed.length - 1 - i];} System.out.println("ranArr:" + Arrays.toString(ranArr));}} 一个运行结果
⑺ java中如何用random函数产生不重复的随机数
废话不多说直接上代码!
import java.util.ArrayList;
import java.util.Random;
public class Test {
public static void main(String[] args) {
// 生成 [0-n) 个不重复的随机数
// list 用来保存这些随机数
ArrayList list = new ArrayList();
int n = 10;
Random rand = new Random();
boolean[] bool = new boolean[n];
int num = 0;
for (int i = 0; i < n; i++) {
do {
// 如果产生的数相同继续循环
num = rand.nextInt(n);
} while (bool[num]);
bool[num] = true;
list.add(num);
}
System.out.println(list);
}
}
⑻ Java怎么产生不重复的随机数,求代码
/**
*随机指定范围内N个不重复的数
*最简单最基本的方法
*@parammin指定范围最小值
*@parammax指定范围最大值
*@paramn随机数个数
*/
publicstaticint[]randomCommon(intmin,intmax,intn){
if(n>(max-min+1)||max<min){
returnnull;
}
int[]result=newint[n];
intcount=0;
while(count<n){
intnum=(int)(Math.random()*(max-min))+min;
booleanflag=true;
for(intj=0;j<n;j++){
if(num==result[j]){
flag=false;
break;
}
}
if(flag){
result[count]=num;
count++;
}
}
returnresult;
}
⑼ 怎样用java产生一个指定范围而且不重复的随机数
publicintgetRandomNumber(){
IntegerrandomNumber=(int)(Math.random()*100);//产生0-100随机数
List<Integer>list=newArrayList<Integer>();
if(!list.contains(randomNumber)){//判断是否重复,不是重复的加入集合
list.add(randomNumber);
}else{//如果产生的随机数是重复的,用递归的方法再次生成
getRandomNumber();
}
returnrandomNumber;
}
我想的思路如上面代码所示。
⑽ 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;
}
}
}
}
(10)生成不重复随机数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() 返回数教对象的本初值