就是一个回调函数 public List<Integer> ranNum(){ Random ran=new Random(); List<Integer> list=new ArrayList<Integer>(); Integer num; for(int i=0;i<5;i++){ num=ran.newInt(35); if(list!=null){ for(Integer j:list){ if (j!=num){ list.add(num); }else{ranNum();}; } } } }
呵呵,自己在编辑框写的,忘记了return list;
Random r = new Random();// 生成 1~100 以内不重复随机数; int a = 35,k = 0,n = 0; int[] b = new int[a]; int[] d = new int[a]; for(int i = 1;i <= a;i++) b[i-1] = i; for(int i = 0;i < 5;i++) { k = r.nextInt(a); d[i] = b[k]; b[k] = b[a-1]; a--; } for(int i = 0;i < 5;i++) { System.out.print(" " +d[i]); }
我也编了一个,就是不能通过编译,不知道问题在哪,请指导一下.我的思路是,定义一个数组a, 把第一个随机数给a的第一个 再生成随机数b,与数组a中的数进行比较,如果不相等就赋值给数组a; import java.util.*; public class test1 { public static void main(String[] args) { int[] a = new int[5]; int i=1; int b; a[0]=Math.random()*35; while(i<=4) do { b=(int)(Math.random()*35); outer: for (int j=0;j<a.length;j++) if(b==a[j]) continue outer; a[i]=b; ++i; } for(int m=0;m<a.length;m++)
System.out.println(a[p]+" ");
} }
import java.util.*;public class Test{ public static void main(String[] args){ Random r = new Random(); int[] a = new int[5]; for(int i = 0; i < a.length;i++){ int temp = r.nextInt(35)+1; for(int j = 0; j < i;){ if(temp == a[j]){ temp = r.nextInt(35)+1; j = 0; } else j++; } a[i] = temp; } for(int i = 0; i < a.length; i++){ System.out.println(a[i]); } } }
import java.util.*; public class test { Random num=new Random(); int[] i=new int[5]; /** Creates a new instance of test */ public test() { seti(); }
// 构造数据
Vector temp = new Vector();
for (int i=0; i<35; i++) {
temp.add(new Integer(i + 1));
}
// 产生随机数
int count = 35;
Object[] result = new Object[5];
for (int j=1; j<=count; j++) {
result[j-1] = temp.remove(new Double(Math.random()*(count)).intValue());
--count;
if (j == 5) break;
}
System.out.println(result[0] + " - " + result[1] + " - " + result[2] + " - " +result[3] + " - " +result[4]);
public List<Integer> ranNum(){
Random ran=new Random();
List<Integer> list=new ArrayList<Integer>();
Integer num;
for(int i=0;i<5;i++){
num=ran.newInt(35);
if(list!=null){
for(Integer j:list){
if (j!=num){
list.add(num);
}else{ranNum();};
}
}
}
}
int a = 35,k = 0,n = 0;
int[] b = new int[a];
int[] d = new int[a];
for(int i = 1;i <= a;i++)
b[i-1] = i;
for(int i = 0;i < 5;i++)
{
k = r.nextInt(a);
d[i] = b[k];
b[k] = b[a-1];
a--;
}
for(int i = 0;i < 5;i++)
{
System.out.print(" " +d[i]);
}
再生成随机数b,与数组a中的数进行比较,如果不相等就赋值给数组a;
import java.util.*;
public class test1 {
public static void main(String[] args)
{
int[] a = new int[5];
int i=1;
int b;
a[0]=Math.random()*35;
while(i<=4) do
{
b=(int)(Math.random()*35);
outer:
for (int j=0;j<a.length;j++)
if(b==a[j]) continue outer;
a[i]=b;
++i;
}
for(int m=0;m<a.length;m++)
System.out.println(a[p]+" ");
}
}
public static void main(String[] args){
Random r = new Random();
int[] a = new int[5];
for(int i = 0; i < a.length;i++){
int temp = r.nextInt(35)+1;
for(int j = 0; j < i;){
if(temp == a[j]){
temp = r.nextInt(35)+1;
j = 0;
}
else j++;
}
a[i] = temp;
}
for(int i = 0; i < a.length; i++){
System.out.println(a[i]);
}
}
}
public class test {
Random num=new Random();
int[] i=new int[5];
/** Creates a new instance of test */
public test() {
seti();
}
public void seti()
{
for(int j=0;j<=4;j++)
{
this.i[j]=num.nextInt(35);
for(int x=0;x<j;x++)
{
while(this.i[j]==this.i[x])
{this.i[j]=num.nextInt(35);x=0;}
}
}
}
public static void main(String[] args)
{
test testnum=new test();
for(int j=0;j<=4;j++)
{
System.out.println(testnum.i[j]);
}
}
}
public int nextInt(int n)
class SetDemo{
public static void main(String[] args){
System.out.println(random());
}
public static Set random(){
Set s=new TreeSet();
do{
int i=(int)(Math.random()*35+1);
s.add(i);
}while(s.size()<5);
return s;
}
}
Set s = new HashSet();
do{
s.add(ran.nextInt(35));
}while(s.size()<5);
System.out.println(s);