Statistics 统计机会计算
我有一个3个变量的函数,可以根据随机机会修改。例如,从100范围内选取一个随机数,如果随机数在0到9范围内,则修改a(10%),修改B(11-30)(20%),修改C(31-35)(5%)Statistics 统计机会计算,statistics,Statistics,我有一个3个变量的函数,可以根据随机机会修改。例如,从100范围内选取一个随机数,如果随机数在0到9范围内,则修改a(10%),修改B(11-30)(20%),修改C(31-35)(5%) 我重写了这个函数,这样3个变量都有机会在同一个调用中被修改(随机数生成3次)。如果我希望每个变量被选择的总概率与之前的行为相同,我会给每个变量提供多少范围?我决定编写一个快速Java应用程序来回答我的问题: import java.util.*; import java.lang.*; class Main
我重写了这个函数,这样3个变量都有机会在同一个调用中被修改(随机数生成3次)。如果我希望每个变量被选择的总概率与之前的行为相同,我会给每个变量提供多少范围?我决定编写一个快速Java应用程序来回答我的问题:
import java.util.*;
import java.lang.*;
class Main {
public static void main(String args[])
{
int a = 0;
int b = 0;
int c = 0;
System.out.println("old: ");
for (int i=0; i<10000; i++) {
int rand = random();
if (rand < 10) {
a++;
continue;
}
if (rand >= 10 && rand < 20) {
b++;
continue;
}
if (rand >= 20 && rand < 30) {
c++;
continue;
}
}
System.out.println("a= " + a);
System.out.println("b= " + b);
System.out.println("c= " + c);
int total = a+b+c;
System.out.println("total " + total);
a = 0;
b = 0;
c = 0;
System.out.println("new: ");
for (int i=0; i<10000; i++) {
int rand = random();
if (rand < 10) {
a++;
}
rand = random();
if (rand >= 10 && rand < 20) {
b++;
}
rand = random();
if (rand >= 20 && rand < 30) {
c++;
}
}
System.out.println("a= " + a);
System.out.println("b= " + b);
System.out.println("c= " + c);
total = a+b+c;
System.out.println("total " + total);
}
public static int random() {
return (int)(Math.random() * 100);
}
}
所以,事实证明,没有任何区别。我不理解这个问题。欢迎。不清楚您是在寻求编程帮助还是数学帮助。如果是后者,请考虑重新提出你的问题。
old:
a= 1000
b= 1005
c= 1001
total 3006
new:
a= 949
b= 1023
c= 999
total 2971