java 的RANDOM 問題

2009-02-14 6:06 am
我想問點樣可以寫到一個FUNCTION, 將一至四十九, 好似六合彩咁, 以RANDOM方式寫入, 戈一個integer array度, 而且唔可以重複.

回答 (3)

2009-02-17 2:05 am
✔ 最佳答案
如果唔重複的話就先將1至49寫入個integer array,
然後用looping將個array打散,

int num[]={1,2,3,4,.......,48,49};

for(int x=0; x<48; ++x){
int temp_num = num[x];
int temp_index = (int)(Math.random()*(48-x)+(x+1));
num[x] = num[temp_index];
num[temp_index] = temp_num;
}

for loop次數為48,由0~47,
每次將其位置的數字與後面其中一個數字互換,
那就能將integer array內49個數字打散了。

這是我在畢業project時寫麻雀遊戲所用來洗牌的function。
2009-02-18 6:40 am
我會直接用 Collections.shuffle( )

首先整定個array of integer, 然後Arrays.asList( )轉佢做List, 咁就可以用Collections.shuffle( )了
2009-02-17 2:48 am
多謝你的內容, 試試先.


收錄日期: 2021-04-15 20:12:58
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090213000051KK01784

檢視 Wayback Machine 備份