洗牌

题目:对n张牌进行你次洗牌,洗牌规则如下:在第k次洗牌时(k=1,……,n),对第i张牌(I=1,……,n/k)随机的产生一个小于n的正整数d,互换第i张牌和第d张牌的位置。

输入:牌A[ ],牌的张数n。

输出:洗牌后的牌A[ ].

template <class Type>

void shuffle(Type A[ ],int n)

{int i,k,m,d;

random_seed(0);

   for(k=1;k<=n;k++){

       m=n/k;

          for(i=1;i<=m;i++){

             d=ran_dom(1,n);

                 swap(A[i],A[d]);

               }

         }

}


猜你喜欢

转载自blog.csdn.net/qq_41496951/article/details/80703188