作者gcobc12632 (Ted)
看板AndroidDev
標題[問題] Android新手 隨機取值的問題
時間Wed Nov 18 18:55:27 2015
假設我有一組陣列
int i[] = {0, 1, 2, 3, 4, 5, 6, 7};
且 01為一組、23為一組、45為一組…以此類推,目前總共四組(可能有變動
然後我要從這組陣列當中,隨機取出 1~4 組數字
例1:隨機取出 4 組,隨機取出 01, 23, 45, 67
例2:隨機取出 2 組,隨機取出 23, 67
例3:隨機取出 3 組,隨機取出 01, 23, 67
大概是這樣…
這該怎麼寫呢?卡在這卡好久了
-
原本我的寫法是:
private int random1 = 0; //奇數
private int random2 = 0; //偶數
do {
random1 = Utils.getRandomNumber(1, i.length);
random2 = Utils.getRandomNumber(0, i.length);
if (random1 % 2 == 0) {
random1--;
}
if (random2 % 2 != 0) {
random2++;
}
} while (random1 < random2);
for (int i = random2; i < random1 + 1 ;i++) {
Log.d("test", i);
}
但是,這樣的話沒辦法得到我想要的結果:
因為這只會抓到連號(01, 23, 45),而不會抓到跳號(01, 45, 67)
而且機率也不會相同(抓到中間值的機率遠大於其他)
所以才上來發問,該怎麼寫呢?
--
By ALi Project グランギニョル
仏語で「操り人形」または「人形劇」を指す。
普通は19世紀末のパリに実在した劇場「グラン・ギニョル座」を指す。
この劇場では人形の代わりに人間が出演し,残酷でエロチックな恐怖劇を演じた。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.192.94
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1447844133.A.7FF.html
推 A4P8T6X9: 開2維陣列,去弄? 11/18 20:18
→ y3k: 是我的話隨機一個整數去mod陣列的length 11/18 20:55
→ y3k: 不過我記得應該有原生的Util可以取吧?@@ 忘了 11/18 21:00
→ sana113821: String[] str={"01","23","45","67"}; 去random 0~3 11/19 20:06
→ sana113821: 然後看要幾次 就for迴圈 要數字再把字串拆開轉回int 11/19 20:07