也就是说 有一个函数 给该函数中放入一个INT的数字例如 50
接着在这里方法内获取当前系统日期 然后来对0-50进行一个排列 且是唯一的 不能与明天或者前天的相同

解决方案 »

  1.   

    你把这个系统时间转化为长整形,作为种子,去依次生成0-50的随机整数,每生成一个数就放入一个List,当然,生成的时候要进行判断,判断该数是否已经出现在List中,如果是就不再插入,不是就插入
      

  2.   

    java的随机种子本来就是系统时间 当然你要是想一天之内的排列都相同那程序可以再改
    import java.util.Arrays;public class Test {
    public static void main(String[] args) {
    System.out.println(Arrays.toString((mySort(30))));
    }
    public static int[] mySort(int num){
    int[] before=new int[num+1];
    int[] after=new int[num+1];
    for(int i=0;i<=num;i++){
    before[i]=i;
    }
    for(int i=0,j=0;i<=num;i++,j++){
    int index=(int)(Math.random()*num);
    if(before[index]!=-1){
    after[j]=before[index];
    before[index]=-1;
    }else{
    while(before[index]==-1){
    index++;
    if(index==num+1)
    index=0;
    }
    after[j]=before[index];
    before[index]=-1;
    }
    //System.out.println(Arrays.toString(before));
    }
    return after;
    }
    }
      

  3.   

    这是同一天排列相同的
    import java.text.SimpleDateFormat;
    import java.util.Arrays;
    import java.util.Date;
    import java.util.Random;public class Test {
    public static void main(String[] args) {
    System.out.println(Arrays.toString((mySort(30))));
    }
    public static int[] mySort(int num){
    Date d=new Date();
    SimpleDateFormat f=new SimpleDateFormat("yyyyddMM");
    long n=Integer.parseInt(f.format(d));
    Random ran=new Random(n);
    System.out.println(n);
    int[] before=new int[num+1];
    int[] after=new int[num+1];
    for(int i=0;i<=num;i++){
    before[i]=i;
    }
    for(int i=0,j=0;i<=num;i++,j++){
    int index=ran.nextInt(num);
    if(before[index]!=-1){
    after[j]=before[index];
    before[index]=-1;
    }else{
    while(before[index]==-1){
    index++;
    if(index==num+1)
    index=0;
    }
    after[j]=before[index];
    before[index]=-1;
    }
    }
    return after;
    }
    }今天的排列:
    [18, 19, 29, 17, 20, 6, 23, 21, 3, 16, 9, 13, 14, 4, 22, 10, 26, 24, 15, 11, 28, 12, 25, 5, 7, 27, 30, 0, 1, 2, 8]
    明天的排列:
    [23, 9, 11, 2, 7, 19, 21, 3, 18, 25, 10, 4, 20, 12, 8, 15, 16, 13, 17, 0, 5, 22, 6, 14, 24, 26, 27, 28, 29, 30, 1]
      

  4.   

    请教一下knightzhuwei   你的那个同一天内生成不通的数字 是什么公式来的?能解释一下吗?谢谢了 我是否能知道下一次的排列是什么?太感谢你了 如果可以的话 那么就搞定了 
      

  5.   

    利用随机种子初始化random 只要作为种子的long型变量相同排列的结果就是相同的 random是java的一个标准类 我不过是使用了它而已
      

  6.   

    那不是公式,因为Random类提供的种子保证只要种子不同,排列就会不同
      

  7.   

    嗯。。所以还是不行。 因为我是想知道下一次的结果的。 唉。刚激动了一下 结果看见了RANDOM。55555555555555555!!!
      

  8.   

    预知明天的排列很简单 
    只要把这句改成Random ran=new Random(20091608);就行了
    预知下个时刻就不好说了 
      

  9.   

    我的种子的组成方式是年日月 虽然好像没什么必要 传20091708就是后天的排列
    公式应该是有的 只是我不知道 可以考虑看下random的源码 
    要知道明天么你运行下就行了