• ベストアンサー

phpのrand関数は本当にランダム?

ネットで下記のようなプログラムを見つけました。 実際に試してみたのですが、結構同じ結果が多いように感じました。 なるべく均等にランダムで表示したいのですが、 rand関数というのは「均等に」という点で向いているのでしょうか? <?php $buhin[0] = 'ファイル1のURI'; $buhin[1] = 'ファイル2のURI'; $buhin[2] = 'ファイル3のURI'; $buhin[3] = 'ファイル4のURI'; $buhin[4] = 'ファイル5のURI'; $bangou = rand(0,4); readfile("$buhin[$bangou]"); ?>

質問者が選んだベストアンサー

  • ベストアンサー
  • pondbook
  • ベストアンサー率53% (7/13)
回答No.1

CやC++でもrand関数は初期値指定以後は同じ結果になるでしょう。そのため意図的にランダムな初期値を最初に与えるようにします。 phpは使ったことがないが多分 srand(time); と現在時刻で初期化してrandを実行すれば同じ結果は出ないと思います。

feed12
質問者

お礼

どうもありがとうございました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>「均等に」 という意味では、ある時からの経過時間(秒)を5で割ったあまりを $bangouに入れれば、必ず均等になります。

feed12
質問者

お礼

どうもありがとうございました。

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.2

何回くらい試してみましたか? 試行回数が少なければ結果が偏ることもあるでしょう。

feed12
質問者

お礼

どうもありがとうございました。

関連するQ&A