Statistics 统计机会计算

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个变量的函数,可以根据随机机会修改。例如,从100范围内选取一个随机数,如果随机数在0到9范围内,则修改a(10%),修改B(11-30)(20%),修改C(31-35)(5%)


我重写了这个函数,这样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