作者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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1447844133.A.7FF.html
1F:推 A4P8T6X9: 开2维阵列,去弄? 11/18 20:18
2F:→ y3k: 是我的话随机一个整数去mod阵列的length 11/18 20:55
3F:→ y3k: 不过我记得应该有原生的Util可以取吧?@@ 忘了 11/18 21:00
4F:→ sana113821: String[] str={"01","23","45","67"}; 去random 0~3 11/19 20:06
5F:→ sana113821: 然後看要几次 就for回圈 要数字再把字串拆开转回int 11/19 20:07