Biased Random Number Generator

前端 未结 10 460
春和景丽
春和景丽 2020-12-09 12:41

I am looking for a random number generator that can be biased. For instance, say I want a random number between 1-5, with the probability being:

1: Comes up 20% of t

10条回答
  •  一整个雨季
    2020-12-09 13:36

    Best way's probably to just take the normal unbiased random generator then return based on the interval its value falls into.

    Just an if statement that gives 1 for 0:0.2, 2 for 0.2:0.3, 3 for 0.3:0.7, 4 for 0.7:0.95 and 5 for 0.95:1. Best to make either the lower or upper limit of the interval inclusive and the other exclusive.

    int biasedRandom(){
    double i = randomNumber();
    if(i<= 0.2){return 1;}
    else if(i <= 0.3){return 2;}
    else if(i <= 0.7){return 3;}
    else if(i <= 0.95){return 4;}
    else{return 5;}
    }
    

    Something like that.

提交回复
热议问题