抽奖奖品概率的算法
发布网友
发布时间:2024-10-10 17:43
我来回答
共1个回答
热心网友
时间:2024-12-05 05:01
可以预定义一个数,然后根据百分比计算各自的门槛值。如下: (注意:概率需要从小到大排列,因为用if判断的问题。
) #define base_NUMBER 32767 #define base_DIV 100 #define RATE1 1 #define RATE2 5 #define RATE3 20 #define RATE4 74int 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就能控制