ホームページ  >  記事  >  バックエンド開発  >  PHP のランダムソートに重み係数を追加する

PHP のランダムソートに重み係数を追加する

*文
*文オリジナル
2017-12-25 13:29:382102ブラウズ

PHP のランダム ソートは多くの人が知っていますが、加重ランダム ソートを実装するにはどうすればよいでしょうか?この記事では、重量別にランダムに並べたデータを共有しますので、皆様のお役に立てれば幸いです。

具体的な実装方法は次のとおりです:

<?php   
/**  
 * @param array $weight 权重  例如array(&#39;a&#39;=>10,&#39;b&#39;=>20,&#39;c&#39;=>50)  
 * @return string key   键名   
 */  
function roll($weight = array()) {   
 $roll = rand ( 1, array_sum ( $weight ) );   
 $_tmpW = 0;   
 $rollnum = 0;   
  foreach ( $weight as $k => $v ) {   
  $min = $_tmpW;   
   $_tmpW += $v;   
   $max = $_tmpW;   
   if ($roll > $min && $roll <= $max) {   
    $rollnum = $k;   
    break;   
   }   
 }   
  return $rollnum;   
}   
 
$row=roll(array(&#39;a&#39;=>10,&#39;b&#39;=>20,&#39;c&#39;=>50));   
echo $row;   
?>


関連推奨事項:

PHPの配列の3つのソート方法 phpクイックソート phpソートアルゴリズム phpソート関数

phpソートアルゴリズムプログラム不要 再帰

PHP共通ソートアルゴリズム学習


以上がPHP のランダムソートに重み係数を追加するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。