如题,要点是等概率
说出算法就好了,不一定要程序CODE

解决方案 »

  1.   

    先放个整数数组p[52]
    设个循环for(int i =0; i <52;i++){
        int position = (int)((52-i)*Math.random()+1);//为第i张牌等概率找到p数组中的位置,从第一个开始计数,若被占则跳过此位置从下个位置继续计数,数到position时把牌放入此位置。
    }
      

  2.   

    先放个整数数组p[52]
    while(true)
    {
    int ran1=..
    int ran2=..
    得到两个随机数,然后
    p[ran1],p[ran2]调换位置
    }
      

  3.   

    jFresH_MaN(TM) ( ) 信誉:164 
    正解呀
    我也想了办法,效率和你的差不多,但是代码比你的那个估计多几行,唉,我就不在这里献丑了