Java 如何根据概率选择变量?

Java 如何根据概率选择变量?,java,random,probability,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您可以这样做: int [] myValues = new int[35]; myV

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

您可以这样做:

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 ]);
int[]myValues=newint[35];
MyValue[0]=100/i;//a1
int-prevValue=myValues[0];
对于(intidx=1;idx<35;idx++){
myValues[idx]=prevValue*(idx+1);
prevValue=myValues[idx];
}
Random rand=新的Random();
int random index=rand.nextInt(35);//获取介于0和34之间的随机数(包括)
System.out.println(“我的值是”+myValues[randomIndex]);

使用一个数组而不是35个单独的变量可以节省大量的精力。使用
java.util.Random
而不是
Math.Random()
可以节省一点精力。你能说得更具体一点吗?我不知道你想实现什么。从你的代码中使用for循环似乎a2=2*a1,a3=3*a1等等,所以你基本上只需要一个介于1和35之间的随机数,然后乘以a1的值。