やりたいこと
n件あるデータの中から5つデータを重複なくランダムに取り出したい(ただしn>5)
考えていること
ランダムの偏りとPCのメモリ
質問
例えば、1000件あるデータから5件をランダムに重複なくデータを取り出したいとき、
- 一気に配列にデータを読み込んでシャッフルした後、前から5件取り出す
while
ループなどで、配列に5件データが揃うまで回し続け、重複はarray_key_exists
などを用いて弾く
というやり方を考えました。
しかし、1のやり方では、データ数が増えるとともにメモリを圧迫します。
2のやり方のときは、ループの時間を考慮しなければなりません。
今回の場合、データは多いので2のやり方を採用しておりますが、
他に効率の良い考え方/アルゴリズムはありますでしょうか。
ご教示いただけるとうれしいです。
閑話
評価-1した人、出てきて理由を説明してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/18 09:12