php で $a, $b, $c... をそれぞれして指定したパーセントの割合で表示させるプログラムを教えて下さい
$a = ’hoge’;$b = ’huga’;$c = ’piyo’;
$a は 10%, $b は 30%, $c は 60% といった具合に指定できつつ$d, $e... と続いても パーセント指定していけるような関数を作りたいです
ご回答よろしくお願いしますm(__)m
一番シンプルにいくには、$aが10%,$bが30%、$cが60%の場合、
$ary = [$a,$b,$b,$b,$c,$c,$c,$c,$c,$c]みたいな配列作ってランダムで選べばいいんじゃないかな。
まぁエレガントではないけど、早いんじゃないかな。
ランダムとは書いてないよなー。
配列が指定の比率になってればランダムで選択したときに指定の確率になりますよ。
言ってる意味がよくわからないのは僕の頭が悪いからでしょうか?
俺も質問の意味がよくわからなかったのだが、ID:WaetLY8xyttmの解釈でいいのかな?
ベストプラクティスではないと思うけど、ID:WaetLY8xyttmと同じ考え方で、array_fillとarray_mergeを使って配列生成すれば、ややわかりやすいコードになるかもしれない
$ary = array_merge( array_fill(0, 10, $a), array_fill(0, 30, $b), array_fill(0, 60, $c));
しかし、結局これも無駄にメモリを消費してしまうという……誰かもっとエレガントな方法教えろてください
こういうこと?
トピ主じゃないけど、「割合で表示する」がなぜランダムって解釈になるの?
逆にそれ以外の選択方法を知りたい。教えてください。
↑に同意。
みんなの回答 5 件
一番シンプルにいくには、$aが10%,$bが30%、$cが60%の場合、
$ary = [$a,$b,$b,$b,$c,$c,$c,$c,$c,$c]
みたいな配列作ってランダムで選べばいいんじゃないかな。
言ってる意味がよくわからないのは僕の頭が悪いからでしょうか?
俺も質問の意味がよくわからなかったのだが、
ID:WaetLY8xyttmの解釈でいいのかな?
ベストプラクティスではないと思うけど、ID:WaetLY8xyttmと同じ考え方で、
array_fillとarray_mergeを使って配列生成すれば、ややわかりやすいコードになるかもしれない
$ary = array_merge(
array_fill(0, 10, $a),
array_fill(0, 30, $b),
array_fill(0, 60, $c)
);
しかし、結局これも無駄にメモリを消費してしまうという……
誰かもっとエレガントな方法教えろてください
こういうこと?
404 Blog Not Found:algorithm - 重みをつけて乱択する
http://blog.livedoor.jp/dankogai/archives/51761113.htmlトピ主じゃないけど、「割合で表示する」がなぜランダムって解釈になるの?
関連するトピックス