抽奖概率算法
可预定一个数字,然后按百分比计算各自的门槛值。下面: (注:由于if判断的问题,概率需要从小到大排列。
) #define BASE_NUMBER 32767 #define BASE_DIV 100 #define RATE1 1 #define RATE2 5 #define RATE3 20 #define RATE4 74 int var1, var2, var3, var4; main() { var1 = (int)((float)BASE_NUMBER*RATE1/BASE_DIV)
; var2 = (int)((float)BASE_NUMBER*RATE2/BASE_DIV)
; var3 = (int)((float)BASE_NUMBER*RATE3/BASE_DIV)
; var4 = (int)((float)BASE_NUMBER*RATE4/BASE_DIV); ...
. if ( rand <= var1 ) { // 第一种 } else if ( rand <= var2 ) { // 第二种 } else if ( rand <= var3 ) { // 第三种 } else { // 第四种 } ... } 如上,只要改变BASE_DIV 和RATE1 2 3 4就能控制
0