如何根据概率选择变量?

时间:2016-02-16 14:43:02

标签: java random probability

我有35个变量(a1,a2 ... a34,a35),每个变量都有一个代表其被挑选概率的数字。

int a1 = 100/i;
int a2 = a1 * 2;
int a3 = a2 * 3;
int a4 = a3 * 4;

使用math.Random(),我会得到1到100之间的随机数,并且将选择包含该数字的变量。最后一部分是我无法做到的。

a1的数字为0-2.5

a2的数字为2.6-5

a3的编号为5.1-7.5

1 个答案:

答案 0 :(得分:0)

你可以这样做:

int [] myValues = new int[35];
myValues[0] = 100/i; // a1
int prevValue = myValues[0];
for (int idx = 1; idx < 35; idx++) {
    myValues[idx] = prevValue * (idx + 1);
    prevValue  = myValues[idx];
}

Random rand = new Random(); 
int randomIndex = rand.nextInt(35);  // get random Number between 0 and 34 (incl.)
System.out.println("My Value is " + myValues[randomIndex ]);