ホームページ  >  記事  >  バックエンド開発  >  PHP簡易宝くじアプリケーションのコード共有

PHP簡易宝くじアプリケーションのコード共有

WBOY
WBOYオリジナル
2016-06-20 13:05:031012ブラウズ

このプロジェクトでは、PHP で宝くじの申請を行う必要があります。ユーザーが宝くじをクリックすると、3 つの異なる結果が返されます (つまり、賞: 1 等、2 等、3 等、宝くじありがとうございます)。賞品の価値が発生する確率は徐々に減少します。

これには、重み計算と同様のアルゴリズムが含まれます。この問題は単純な重み計算方法で解決され、確率も予想の範囲内でした。

この重みの計算方法の概要は次のとおりです。

まず、この例は 1 次元が数値インデックスである 2 次元配列にのみ適しています。データ配列の構造は次のとおりです。

<p>$data=array(</p>	0=>array('id'=>1,'name'=>'一等奖','weight'=>'5'),<br />	1=>array('id'=>2,'name'=>'二等奖','weight'=>'10'),<br />	2=>array('id'=>3,'name'=>'三等奖','weight'=>'25'),<br />	3=>array('id'=>4,'name'=>'谢谢抽奖','weight'=>'60')<br /><p>);</p>

以下は重みを計算するための簡単なアルゴリズムです

<p>// 权重数值越高,被返回的概率越大</p>// author www.scutephp.com<br />function countWeight($data){<br />	$weight=0;<br />	foreach($data as $v){<br />		$weight+=$v['weight'];<br />	}<br /><p>	$int=mt_rand(1,$weight);//获取一个随机数</p><p>$weight = 0;<br /></p><p>foreach($data as $v){<br />$weight+=$v['weight'];<br />if($int <= $weight) return $v;<br />}</p><p>}</p>

計算結果は次のように返されます: Array

(
[id] => 4
[名前] => 抽選ありがとうございます
[体重] => 60
)


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