【转】从一副扑克牌中随机抽取N张

该问题为产生不重复的随机数序列,形象点就是一副扑克牌中随机抽取N张。

摘自:不重复随机数列生成算法

改了一部分

    /**
     * 从0-max随机选N个数出来
     * **/
     public static int[] GetRandomSequence2(int max,int N)
     {

         int[] sequence = new int[max];
         int[] output = new int[N];

         for (int i = 0; i < max; i++)
         {
             sequence[i] = i;
         }

         Random random = new Random();

         int end = max-1;

         for (int i = 0; i < N; i++)
         {
             int num = random.nextInt(end);
             output[i] = sequence[num];
             sequence[num] = sequence[end];
             end--;
         }

         return output;
     }

 

posted @ 2017-02-27 15:27  morein2008  阅读(610)  评论(0编辑  收藏  举报