/**
* 产生total个0-max的不重复随机数
* @param total
* @param max
*/
private int[] generateRam(int total, int max){
int[] arr = new int[total];
for (int i=0; i<total; i++)
{
arr[i] = (int)(Math.random()*(max+1));
for (int j = 0; j < i; j++){
if (arr[j] == arr[i]){
i--;
break;
}
}
}
for (int i = 0; i < total; i++)
System.out.print(arr[i] + " ");
return arr;
}
public class Test
{
// 产生20个0-30的不重复随机数
public static void main(String[] args)
{
int total = 20;
int max = 30;
int[] arr = new int[total];
for (int i=0; i<total; i++)
{
arr[i] = (int)(Math.random()*(max+1));
for (int j = 0; j < i; j++){
if (arr[j] == arr[i]){
i--;
break;
}
}
}
for (int i = 0; i < total; i++)
System.out.print(arr[i] + " ");
}
}
b.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
int n=40;
int[] num = new int[n];
for(int i=0;i <num.length;i++)
num[i] = i+1;
int[] arr = new int[10];
for(int i=0;i <arr.length;i++)
{
int r =(int)(Math.random()*n);
arr[i]=num[r];
num[r]=num[n-1];
n--;
}
for(int i=0;i <arr.length;i++)
System.out.print(arr[i]+" ");
}
}
c.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
LinkedList <Integer> myList= new LinkedList <Integer> ();
int n=40;
for(int i=0;i <n;i++)
myList.add(i+1);
int[] arr = new int[10];
for(int i=0;i <arr.length;i++)
{
arr[i]=myList.remove((int)(Math.random()*n));
n--;
}
for(int i=0;i <arr.length;i++)
{
System.out.print(arr[i]+" ");
}
}
}
d.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Set <Integer> mySet = new LinkedHashSet <Integer> ();
while(mySet.size() <10)
{
mySet.add((int)(Math.random()*40+1));
}
for(Integer i:mySet)
{
System.out.print(i+" ");
}
}
}
public class Test
{
public static void main(String[] args)
{
int[] arr = new int[10];
for (int i = 0; i < 10; i++)
{
arr[i] = (int) (Math.random() * 40) + 1;
for (int j = 0; j < i; j++)
{
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for (int i = 0; i < 10; i++)
System.out.print(arr[i] + " ");
}
}
b.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
int n=40;
int[] num = new int[n];
for(int i=0;i <num.length;i++)
num[i] = i+1;
int[] arr = new int[10];
for(int i=0;i <arr.length;i++)
{
int r =(int)(Math.random()*n);
arr[i]=num[r];
num[r]=num[n-1];
n--;
}
for(int i=0;i <arr.length;i++)
System.out.print(arr[i]+" ");
}
}
c.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
LinkedList <Integer> myList= new LinkedList <Integer> ();
int n=40;
for(int i=0;i <n;i++)
myList.add(i+1);
int[] arr = new int[10];
for(int i=0;i <arr.length;i++)
{
arr[i]=myList.remove((int)(Math.random()*n));
n--;
}
for(int i=0;i <arr.length;i++)
{
System.out.print(arr[i]+" ");
}
}
}
d.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Set <Integer> mySet = new LinkedHashSet <Integer> ();
while(mySet.size() <10)
{
mySet.add((int)(Math.random()*40+1));
}
for(Integer i:mySet)
{
System.out.print(i+" ");
}
}
}
Java代码
第一种方法,在一个待选数组中随机产生一个数,然后把他放到待选数组的最后,然后从length-1里随机产生下一个随机数,如此类推
public static int[] randoms()
{
Random r = new Random();
int temp1,temp2;
int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
int len = send.length;
int returnValue[] = new int[22];
for(int i=0;i<22;i++)
{
temp1 = Math.abs(r.nextInt())% len;
returnValue[i] = send[temp1];
temp2 = send[temp1];
send[temp1] = send[len-1];
send[len-1] = temp2;
len--;
}
return returnValue;
}
}
方法二:还是一个固定的无重复的数组,然后把这个数组随机调换位置,多次之后这个数组就是一个无重复的随机数组了。
public static int[] random2()
{
int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
int temp1,temp2,temp3;
Random r = new Random();
for(int i=0;i<send.length;i++) //随机交换send.length次
{
temp1 = Math.abs(r.nextInt())%(send.length-1); //随机产生一个位置
temp2 = Math.abs(r.nextInt())%(send.length-1); //随机产生另一个位置
if(temp1 != temp2)
{
temp3 = send[temp1];
send[temp1] = send[temp2];
send[temp2] = temp3;
}
}
return send;
}
分享到:
相关推荐
VBA生成不重复的随机数源码.txt
VB生成不重复的随机数 我的建议是:第一步、先做一个数组,存上这35个数(可以不是连续的数,也可以是人名、字符串什么的);第二步、随机生成一个1-35之间的数,输出;第三步:把这个数和数组的第一个单元交换;第...
多种生成不重复随机数的java 源代码,在线考试系统组卷系统中若需要随机抽题技术,这些代码可能会帮上忙!
生成指定随机数不重复的例子(解压,放到myeclipse即可用)
VB.NET生成不重复的随机数源程序。 VB.NET生成不重复的随机数源程序。
代码如下:/// /// 生成不重复随机数列表实例 /// /// ”count”>不重复数数量 /// 不重复数列表 private static List<int> GetRandomList(int count) { List<int> list = new List(); int num = 0; ...
ASP不重复随机数:方法一: 已测使用的时候需要注意里面的分割字符串的字符。 代码如下: <% ‘生成的是一个不重复的数组 Function GetRnd(lowerNum,upperNum) Dim unit,RndNum,Fun_X unit = upperNum – ...
易语言取不重复随机数源码,取不重复随机数
C#产生不重复的随机数.txt
VBS 生成不重复随机数代码[0-10]
.NET生成不重复的随机数,源文件..常用的设置
下面写几种生成不重复随机数的方法,直接上代码吧 复制代码 代码如下: <?php define(‘RANDOM_MAX’, 100); define(‘COUNT’, 10); echo ‘max random num: ‘.RANDOM_MAX, ‘ ;result count:’.COUNT, ‘ ’...
巧用Java实现得到任意位永不重复的随机数,很经典的代码!
通过循环创建随机种子来循环生成随机数,避免了重复调用Random的Next方法产生重复随机数的问题,程序里可设置文件的保存路径和产生的随机数长度
下面小编就为大家分享一篇python生成不重复随机数和对list乱序的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本文汇总了5种生成不重复随机数的方法,其中方法一、二、三是本人常用的方法,方法四五来至度娘。其余方法还是有的,也欢迎大家将遗漏的方法告之,大家共同进步
VB.NET生成1-10不重复随机数.重点是生成随机数,而且不重复。