- ベストアンサー
1から20までの整数から、重複なくランダムに3つ数づつを取り出す
BLUEPIXYの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>高級言語は配列のランダム機能があったりするのでみなさんローレベルのランダム化にはなれていないのでしょうか? >残念ながらみなさんのコーディングには問題があります。 >重複したら、リトライするという方式は一番してはいけない方法です。 >1000個の要素から1000個抜き出すときに、999番目の要素は約0.1%の確率でしか重複しない数値がヒットしません。 >要素数が増えると加速度的に時間のかかるプログラムです。 もちろんおっしゃることは、わかります、 #3のプログラムについて言えば、ある範囲の中から範囲に比べて少ない数が選ばれるということを想定したものです。 例えば、 1~10000(あるいはもっと大きい?)までの範囲の数の中から、3コ数を選びたいだけなのに、いちいちその範囲の数を重複させないためだけに候補を作るのは、いかにもムダです。 逆に、範囲のほとんど全数が必要になるなら、#3は、向かないのはおっしゃる通りですね。 そういったことは、ケースバイケースのように思われます。 #4については、いちいち評を挟みませんでしたが、#5でおっしゃる通りでかなり高コストだなあと思っていました。
関連するQ&A
- 【エクセル】ランダムで重複しない整数を出したい。
Windows 7、エクセル2007です。 ランダムで重複しない整数を任意の範囲から一部のみ入力するにはどうしたら良いでしょうか? 1.任意の範囲「1~50」とか「1~100」とか「15~300」とかから、20個だけとか40個だけとか。 2.ランダムなので「2,6,3,4,8,1・・・」とかのn、n+1、n+2ではないランダムな整数。 3.重複しないこと。 上記1~3を満たしたやり方ってありますか? 出てこない数があっても良いんです。 例えば、1~10までの範囲でランダムに3個だけセルに入力したいとき。 A1に7、A2に4、A3に9というふうに。 それが1~300の範囲で50個の数字をランダムに重複しないように入力する。 A1に15、A2に163、A3に92、・・・A50に43。 残りの250個の数字は入力されないという感じです。 乱数だと重複します。 ランク(順位)と組み合わせると、連続(n、n+1、n+2)になってしまいます。 列はどこでも良いんですが、行は連続したいです。 A1~A50とか、A1~A300とか。 関数の組み合わせでできないでしょうか? また、マクロは分からないので、詳しく解説して頂けると助かります! 情報が不足する点がありましたら指摘して下さい。 追加します。
- ベストアンサー
- その他MS Office製品
- Excelで整数ランダムにだすには
Excelで整数ランダムにだすにはどのようにすればいいのでしょうか? 整数 1~50 同じ整数を重複しない よろしくお願いします。
- ベストアンサー
- Windows Vista
- Excelでランダムかつ重複無し整数の出し方
例えば3~7の範囲で、ランダムかつ重複しないように整数を出したい場合、 どうしたらよいでしょうか? Windows XP Excel 2003です。
- ベストアンサー
- Excel(エクセル)
- エクセルで重複しないランダムな1桁の数
似たような質問はたくさんあるのですが,どれも今ひとつしっくりこないのであらためて質問します。 エクセルでA1:I1の範囲に1から9の数を重複なしでランダムに表示させたいのですが,よい方法を教えてください。(九九の練習プリント作成のためです。) 現在の知識で=TRUNC(RAND()*9)+1 とすることによって1から9までの整数値をランダムに表示することはできているのですが,これだけだと重複してしまいます。これを修正していただけると助かりますが,別の方法でもかまいません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- PHPで変数を重複しないようにランダムで配置したい
表題のとおりなのですが、書きソースを見てもらえればわかりやすいかと思いますので、まずはご一読頂けると幸いです。 -------------------------------------------------------------------------------- <?php $rank[1] = "<td>100個</td>"; $rank[2] = "<td>200匹</td>"; $rank[3] = "<td>300万</td>"; $rank[4] = "<td>400億</td>"; $rank[5] = "<td>500台</td>"; ?> <table> <tr> <?php echo $rank[ここに重複しないランダムな整数を入れたい]; ?> <?php echo $rank[ここに重複しないランダムな整数を入れたい]; ?> <?php echo $rank[ここに重複しないランダムな整数を入れたい]; ?> </tr> <tr> <?php echo $rank[ここに重複しないランダムな整数を入れたい]; ?> <?php echo $rank[ここに重複しないランダムな整数を入れたい]; ?> </tr> </table> -------------------------------------------------------------------------------- このような形で、 [] の中の数字を重複せずにランダムに入力されるようにしたいです。 目的としてはテーブルの中の要素をページを更新するたびにランダムに並べ替えるためです。 私が思いついた方法は上記のようなものが一番シンプルで良い気がしたのですが、ほかにスマートな方法がありましたら、是非教えていただきたいです。 サンプルでは変数の中にちょっとしたものしか入っていませんが、実際にはもっと長いものになります。 どうかよろしくお願い致します。
- ベストアンサー
- PHP
- Excel 文字や記号を重複無し&ランダムで出す
以前、整数をランダムかつ重複しないように出す方法を質問しました。 http://okwave.jp/qa/q8998274.html 今度は、文字や記号などの整数以外のものをランダムかつ重複しないように出したいのですが… 可能でしょうか?
- ベストアンサー
- Excel(エクセル)
- 重複しない整数をランダム表示
エクセル98を使用しています。 例えば3つのセルに1~5の数字をランダムに、重複させないように表示させることはできるでしょうか? 作業用のスペースを使用して、いくつか処理を加えれば可能なのですが、関数を組み合わせてもっとスマートにできる方法はないかと思い、ダメ元で質問させて頂きました。 大したことではないのですが、いいアイディアがある方はアドバイスを頂けると助かります。
- 締切済み
- オフィス系ソフト
- 整数のランダム生成について
エクセル98を使用しています。 例えば1~5の数字の整数をランダムに発生させようとしているのですが、 =INT(RAND()*5+1) と記述する方法と =INT(RAND()*5)+1 と記述する方法があるのですが、どちらが良いのでしょう? 実際試したみたところ、どちらも1~5の整数をランダムに発生させることができています。 結局は同じ意味なのでしょうか? 大したことではないのですが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelでのランダムな整数の出し方
A1のセルに、ルーレットのようにランダムな整数を 表示させたい時は、 =INT(RAND()*10) という関数を使うのだと思いますが、 これだと0~9までが均等に出現しますよね。 A1には、0,1,2の3つのみを ランダムに出現させたい、という場合は どのように設定すればいいのでしょうか? 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト