第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

洗牌問(wèn)題 代碼我想這樣寫 感覺(jué)邏輯沒(méi)問(wèn)題啊 但運(yùn)行不出效果 請(qǐng)指教?


System.out.println("開(kāi)始洗牌");

do{

int ran=(int)(Math.random()*52);

Poker p=poke.get(ran);

if(poke1.contains(p)){

continue;

}else{

poke1.add(p);

}

}while(poke1.size()<=52);

System.out.println("洗牌后順序:");

for(Poker p:poke1){

System.out.print(p.color+p.number+" ");

}

}


正在回答

1 回答

邏輯是沒(méi)有問(wèn)題,但是算法有問(wèn)題。因?yàn)槊看味际菑膩?lái)原來(lái)的撲克牌里隨機(jī)取出一張牌添加到洗好的撲克牌里,當(dāng)你往洗好的牌里追加牌的時(shí)候,剛開(kāi)始可能抽出的牌不會(huì)重復(fù)(重復(fù)概率相對(duì)較低),但是越往后,重復(fù)添加牌的可能就越大,這樣容易報(bào):java.lang.OutOfMemoryError: Java heap space的錯(cuò)。建議在抽出牌的同時(shí)刪除原始牌堆的牌,然后縮小random的范圍,這樣添加的牌就不會(huì)重復(fù)。如下:

System.out.println("開(kāi)始洗牌");

do{

int ran=(int)(Math.random()*poke.size());

Poker p=poke.get(ran);

poke1.add(p);

poke.remove(p);

}

}while(poke1.size()<=52);

System.out.println("洗牌后順序:");

for(Poker p:poke1){

System.out.print(p.color+p.number+" ");

}

}


1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

洗牌問(wèn)題 代碼我想這樣寫 感覺(jué)邏輯沒(méi)問(wèn)題啊 但運(yùn)行不出效果 請(qǐng)指教?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)