admin管理员组

文章数量:1516870

头条面试题:52张去掉大小王扑克牌平均分给4人,每人13张牌,要求随机分配

本道题难点为随机分配,要做到随机,就必须进行洗牌,本题我们采用随机数进行洗牌,先将52张扑克牌放入数组中,产生0-51的随机数,将随机数索引处的牌与当前遍历索引的牌进行交换来进行洗牌,最后将牌发给4人,最后呈上代码:

    public static void main(String[] args) {String[] Pukepai=new String[52];String[] type={"黑","红","梅","方"};Random ran=new Random();int index=0;//将52张牌放入数组中for(String s:type){for(int i=1;i<14;i++){Pukepai[index++]=s+i;}}//洗牌,j将产生随机数的索引与遍历索引的数字做交换,进行洗牌for(int i=0;i<52;i++){int ranindex=ran.nextInt(52);String str=Pukepai[i];Pukepai[i]=Pukepai[ranindex];Pukepai[ranindex]=str;}//将扑克牌分给4人,每人为数组中的一列String[][] result=new String[4][13];for(int i=0;i<52;i++){result[i/13][i%13]=Pukepai[i];}//分别输出没人分得的排,中间用******隔开for(String[] ROW:result){for(String COL:ROW){System.out.println(COL);}System.out.println("***********");}}

本文标签: 头条面试题52张去掉大小王扑克牌平均分给4人,每人13张牌,要求随机分配