• ベストアンサー

phpで$a,$b,を%指定して表示させたい

php で $a, $b, $c... をそれぞれして指定したパーセントの割合で表示させるプログラムを教えて下さい $a = 'hoge'; $b = 'huga'; $c = 'piyo'; $a は 10%, $b は 30%, $c は 60% といった具合に指定できつつ $d, $e... と続いても パーセント指定していけるような関数を作りたいです ご回答よろしくお願いしますm(__)m

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

$a = 'hoge'; $b = 'huga'; $c = 'piyo'; としたのであれば、 $data = array($a, $b, $c); $perc = array(10, 30, 60); と定義して($percは「割合」の数値=合計が100にならなくても可)。 $arr = array(); foreach ($data as $key=>$val) { $arr = array_merge($arr, array_fill(0, $perc[$key], $val)); } shuffle($arr); とすればいいのでは?

hogeokwave
質問者

お礼

この方法で可能でした ありがとうございます

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

すみません。 > $a, $b, $c... をそれぞれして指定したパーセントの割合で表示 何をおっしゃっているのか、可能性がありすぎてわかりません。 「$a は 10%, $b は 30%, $c は 60%」 ならば ・hogeを10回、hugaが30回、piyoが60回、計100 回表示されればいいのか? ・↑の回数表示されるけど、順不同なのか? ・「真の確率」が10%というだけで、実際の実行で100回中11回とかになってもいいのか? ・hoge.huga...........piyo................. と、hugeが10%の幅、hugaが30%の幅、piyoが60%の幅で表示する、という意味なのか? まずは、やろうとしていることを、人に説明できるようにまとめてください。 まとめることで、なにをやるべきか見えることもあります。

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

>それぞれして指定したパーセントの割合で表示させるプログラム 考え方が2つあります 一つは、確率的に指定したパーセントで出現させる もう一つは、確実にそのパーセントで出現させる 前者だと仮に10個表示した場合、必ずしもその割合にはなりませんが 確率的にはその割合ですので、何度もトライし統計だてて計算すると その確率に近くなります 後者だと表示する数量が限定されます。 例示の命題であれば、最低10個表示し10の倍数ずつ表示しなければ 1:3:6で表示することはできません。 仮に、1:1:1だった場合は、3の倍数ずつ表示しなければいけないでしょう

関連するQ&A

専門家に質問してみよう