国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP實現(xiàn)的權重算法示例【可用于游戲根據(jù)權限來隨機物品】

2024-05-05 00:06:38
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了PHP實現(xiàn)的權重算法。分享給大家供大家參考,具體如下:

假設有數(shù)據(jù):

$data = array ( array ( 'id' => 1, 'name' => '張三', 'weight' => 5 ), array ( 'id' => 2, 'name' => '王五', 'weight' => 10 ), array ( 'id' => 3, 'name' => '李四', 'weight' => 15 ),);

要隨機取出其中一條,并且不是完全隨機,而是根據(jù)其中weight的數(shù)值,按照數(shù)值越大,幾率越高的規(guī)律取出。

以前寫過一些權重算法,可是都不完美,要么數(shù)據(jù)量有限制,要么weight之和必須等于一個指定的數(shù)等等,都不完善。

今天突發(fā)奇想,寫了一套完美的權重算法,該算法有如下優(yōu)勢:

1. 支持無限多個數(shù)據(jù)

2. weight值之和任意

3. 不存在兩個weight值一樣時無法平均分配的bug

算法如下:

$data = array ( array ( 'id' => 1, 'name' => '張三', 'weight' => 5 ), array ( 'id' => 2, 'name' => '王五', 'weight' => 10 ), array ( 'id' => 3, 'name' => '李四', 'weight' => 15 ),);$weight = 0;$tempdata = array ();foreach ($data as $one) { $weight += $one['weight']; for ($i = 0; $i < $one['weight']; $i++) { $tempdata[] = $one; }}$use = rand(0, $weight -1);$one = $tempdata[$use];var_dump($one);

運行結果:

array(3) {
  ["id"]=>
  int(2)
  ["name"]=>
  string(4) "王五"
  ["weight"]=>
  int(10)
}

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 乐至县| 扶余县| 克拉玛依市| 永和县| 郁南县| 西乌| 大方县| 陆良县| 岑溪市| 呼图壁县| 东乌珠穆沁旗| 敦煌市| 楚雄市| 化州市| 扎赉特旗| 裕民县| 凤台县| 新源县| 盐山县| 安陆市| 深州市| 集贤县| 高密市| 松滋市| 和静县| 宜兰县| 吉木萨尔县| 霍林郭勒市| 东平县| 昌吉市| 白银市| 吉林市| 江华| 桐城市| 新泰市| 五家渠市| 二连浩特市| 滨海县| 客服| 山丹县| 县级市|