隨機物品權重演算法設計

2021-06-18 11:16:02 字數 675 閱讀 9513

1、前言

在遊戲開發中很多功能按權重隨機給東西,比如:掉落、獎勵、**等等.....

2、功能

*)支援多個權重進行隨機

*)能遮蔽指定權重,防止再次隨機到

3、實現

public int weightrandom(bitset exclude, int... weights) 

int length = weights.length;

if (length == 0)

if (len == 1) else if (w == 0) else

}int total = 0;

for (int i = 0; i < len; i++)

int w = weights[i];

total += w;

}if (total <= 0)

int randomnum = random(1, total), hitindex = -1, partnum = 0;

for (int i = 0; i < len; i++)

int w = weights[i];

partnum += w;

if (partnum >= randomnum)

}return hitindex;

}

權重隨機演算法

主要用於計算 ip池設計,實現概率選擇優質 ip,所以簡單寫了個權重隨機演算法。如果量大注意int 超限,預設20次 支援107374182個ip。權重物件類 public class ipweight public void setaddress string address public int...

演算法 權重隨機

權重物件 public class randomobject id public int id 四類寶箱中物品數量的權重 json格式資料 1,101 2,102 31,103 41,104 寶箱中具體物品數量的權重 json格式資料 1202,100 1203,100 1201,100 1210,...

帶權重的隨機演算法

但是,對於這樣的問題,怎樣才能實現這樣的隨機效果呢?直接使用random函式,是不可能做到的。其實相信好多人都已經有實現的思路了,就是產生0 100之間的隨機數,當隨機數在0 70時,就獲得3等獎,70 90是2等獎,90 100是一等獎。一般情況下,這種隨機概率,是通過讀取 或檔案來獲取的,然後儲...