import java.util.*;
import javax.swing.JOptionPane;
public class UseArrays {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s=JOptionPane.showInputDialog("输入小与5的整数");//输入对话框
int k=Integer.parseInt(s);
//调用方法得到36选k的结果(保存在向量中)并转化为Object数组
Object[]first=selectKFrom36(k).toArray();
Arrays.sort(first);//升序排列
System.out.println(Arrays.toString(first));//打印数组
System.out.println("正生成36选"+k+"的下一个与上面一样的结果:");
Object[]next=null;//存放下一个36选k的结果
boolean bool=false;
int times=1;//存放次数
while(!bool)
{
next=selectKFrom36(k).toArray();//随机生成下一个36选k的结果
times++;
Arrays.sort(next);
bool=Arrays.equals(first, next);
}
System.out.println(Arrays.toString(next));
System.out.println(times+"次后,两组随机的36选"+k+"正好一样");
}
public static Vector selectKFrom36(int k)
{
Random rd=new Random();
Vector allNum=new Vector();
Vector kNum=new Vector();
for(int i=0;i<36;i++)
{
allNum.add(new Integer(i+1));//向向量allNum中依次添加1——36个整数
}
int x;
for(int i=0;i<k;i++)
{
x=rd.nextInt(36-i);
kNum.add(allNum.get(x));
allNum.remove(x);
}
return kNum;
}
}