- ベストアンサー
phpで$a,$b,を%指定して表示させたい
php で $a, $b, $c... をそれぞれして指定したパーセントの割合で表示させるプログラムを教えて下さい $a = 'hoge'; $b = 'huga'; $c = 'piyo'; $a は 10%, $b は 30%, $c は 60% といった具合に指定できつつ $d, $e... と続いても パーセント指定していけるような関数を作りたいです ご回答よろしくお願いしますm(__)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$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); とすればいいのでは?
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
すみません。 > $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)
>それぞれして指定したパーセントの割合で表示させるプログラム 考え方が2つあります 一つは、確率的に指定したパーセントで出現させる もう一つは、確実にそのパーセントで出現させる 前者だと仮に10個表示した場合、必ずしもその割合にはなりませんが 確率的にはその割合ですので、何度もトライし統計だてて計算すると その確率に近くなります 後者だと表示する数量が限定されます。 例示の命題であれば、最低10個表示し10の倍数ずつ表示しなければ 1:3:6で表示することはできません。 仮に、1:1:1だった場合は、3の倍数ずつ表示しなければいけないでしょう
お礼
この方法で可能でした ありがとうございます