PHP Version 5.1.6を使っています。
例えば、1から10まで整数の中から値が重複しないように
ランダムに8個選びたいような時で、自分が思いつた選び方は、
for($i=0; $i<8; $i++){
$r = rand(1, 10);
$flag = false;
for($j=0; $j<Count($list); $j++){
if($r == $list[$j]){
$flag = true;
break;
}
}
if($flag){
$i--;
continue;
}
$list[] = $r;
}
print_r($list);
なんですが、これだと効率が悪いような気がします・・・
そこで重複しないようにランダムに選べる乱数や
またはそういう関数はあるのでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>shuffleの中身(実装)は大体でいいのでどのようになってるか
質問の意図がよくわかりません。
以下参考にしてください。
http://www.php.net/manual/ja/function.shuffle.php
http://www.php.net/manual/ja/function.srand.php
No.2
- 回答日時:
配列をつかって乱数をえるなら普通はshuffle()とかじゃないですかね?
一応ランダマイズをした方がよいのでsrand()など併用します。
8個だけ活かすなら配列のケツ2つをunsetしたりで十分かなぁ・・・
<?PHP
$array = range(1, 10);
srand((float)microtime() * 1000000);
shuffle($array);
unset($array[8],$array[9]);
print_r($array);
?>
ご返答ありがとうございます。
なるほど、shuffleなら似たようなことができますね。
ところでshuffleの中身(実装)は大体でいいのでどのようになってるか分かりますか?
No.1
- 回答日時:
>そこで重複しないようにランダムに選べる乱数や
00, 11, 22, 33, .., 99 を除いた 2桁の数 01 ~ 98 の中からランダムに数字を選んで、10の位と 1の位を取ればいいのでは?
# もちろん rand() 関数が十分ランダムである必要がありますが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのDjangoでHTML内で変数を利用したいです 3 2022/05/15 15:33
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# C言語 3 2022/11/09 13:27
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CArrayの要素としてCStringArra...
-
foreachの実行結果について
-
C言語の配列をPush(追加)する...
-
forとかで連番の変数を一気に格...
-
濁点のソート
-
配列参照で$my_var=f('b')みた...
-
array(array()); 多次元配列初...
-
一度に複数の値を取得できる乱...
-
特定の文からメールアドレスの...
-
配列の添え字が小数だとどうなる?
-
Smartyでインクリメント
-
String だと「 ByRef引数の型が...
-
多次元配列の中で条件に合う要...
-
PHP 多次元配列変数のデータ受...
-
PHPにてクラスを配列にすること...
-
While文を使って配列の中身を全...
-
PHP SimpleXml unsetについて
-
テキストデータから指定行の削除
-
foreachのなかで次のキーを参照...
-
別ファイルの構造体の値を読み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングのPythonのnoteb...
-
C言語の配列をPush(追加)する...
-
php で1から100までの素数の表...
-
STLのvectorで作った配列をメン...
-
スカラーのベクトル微分
-
行列
-
Perlで重複行を削除したい
-
配列の要素(value)に、変数を...
-
特定の文からメールアドレスの...
-
forとかで連番の変数を一気に格...
-
C言語 最大値と最小値を求めて...
-
CArrayの要素としてCStringArra...
-
PHPでユニークIDを作る
-
fgetc関数について
-
読み(あ行~わ行)ごとに分け...
-
Pager::factory()の使い方がわ...
-
verilogで、配列の一部をタスク...
-
mallocで char *型の配列を確...
-
c言語 単位行列
-
連想配列で値が空だったら、要...
おすすめ情報