ホームページ > バックエンド開発 > PHPチュートリアル > ループして乱数を取得する方法はどれが良いでしょうか?

ループして乱数を取得する方法はどれが良いでしょうか?

WBOY
リリース: 2016-06-13 12:13:26
オリジナル
1106 人が閲覧しました

乱数をループする場合、どの方法が優れていますか?
for ループは 18 回行われ、そのたびに 1、2、3、4 の中からランダムに数値を取得する必要があります

<br />$a = floor(18/4);<br />$b = '1,2,3,4';<br />for($i=0;$i<$a;$i++){<br />   $b = $b.',1,2,3,4';<br />}<br />$c = explode(',',$b);<br />for($i=0;$i<18;$i++){<br />   $xuyao = $c[$i];//第1种方式<br />   $xuyao = rand(1,4);//第二种方式<br />   //后续其它代码<br />}<br />
ログイン後にコピー

速度とリソース使用量のどちらが優れていますか?
------解決策のアイデア----------------------
include 'check_speed.php';<br /><br />function f1() {<br />  $a = array(1,2,3,4);<br />  $a = array_merge($a, $a, $a, $a, $a);<br />  shuffle($a);<br />  return join('', array_slice($a, -18));<br />}<br />function f2() {<br />  $r = '';<br />  for($i=0; $i<18; $i++) $r .= rand(1, 4);<br />  return $r;<br />}<br />check_speed(50000, 'f2');<br />check_speed(50000, 'f1');<br />
ログイン後にコピー
平均 50,000 回
f2<br />时间: 9 微秒<br />内存: 768<br /><br />f1<br />时间: 8 微秒<br />内存: 448<br />
ログイン後にコピー

明らかに f1 は f2 より効率的です

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート