Non-Uniform Random Number Generator Implementation?

前端 未结 8 2132
北恋
北恋 2021-01-05 19:03

I need a random number generator that picks numbers over a specified range with a programmable mean.

For example, I need to pick numbers between 2 and 14 and I need

8条回答
  •  青春惊慌失措
    2021-01-05 19:52

    Assign all numbers equal probabilities,
    

    while currentAverage not equal to intendedAverage (whithin possible margin)

     pickedNumber = pick one of the possible numbers (at random, uniform probability, if you pick intendedAverage pick again)
    
     if (pickedNumber is greater than intendedAverage and currentAverageintendedAverage)
    
       increase pickedNumber's probability by delta at the expense of all others, conserving sum=100%
    
     else
    
       decrease pickedNumber's probability by delta to the benefit of all others, conserving sum=100%
    
     end if
    
     delta=0.98*delta (the rate of decrease of delta should probably be experimented with)
    

    end while

提交回复
热议问题