[問題] Android新手 隨機取值的問題

看板AndroidDev作者 (Ted)時間8年前 (2015/11/18 18:55), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/2 (看更多)
假設我有一組陣列 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

11/18 20:18, , 1F
開2維陣列,去弄?
11/18 20:18, 1F

11/18 20:55, , 2F
是我的話隨機一個整數去mod陣列的length
11/18 20:55, 2F

11/18 21:00, , 3F
不過我記得應該有原生的Util可以取吧?@@ 忘了
11/18 21:00, 3F

11/19 20:06, , 4F
String[] str={"01","23","45","67"}; 去random 0~3
11/19 20:06, 4F

11/19 20:07, , 5F
然後看要幾次 就for迴圈 要數字再把字串拆開轉回int
11/19 20:07, 5F
文章代碼(AID): #1MJ5abV_ (AndroidDev)
文章代碼(AID): #1MJ5abV_ (AndroidDev)