【问题标题】:How to chose a variable depending on probability?如何根据概率选择变量?
【发布时间】:2016-02-16 14:43:01
【问题描述】:

我有 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

【问题讨论】:

  • 您可以通过使用数组而不是 35 个单独的变量来节省大量精力。
  • 使用java.util.Random 代替Math.random() 稍加努力。
  • 你能说得更具体些吗?我没有得到你想要达到的目标
  • 尝试使用 for 循环
  • 从您的代码看来,a2 = 2*a1、a3 = 3*a1 等,所以您基本上只需要一个介于 1 和 35 之间的随机数并将其乘以 a1 的值。

标签: java random probability


【解决方案1】:

你可以这样做:

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 ]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2014-12-15
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    相关资源
    最近更新 更多