• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaの乱数生成プログラム-バグを教えてください)

javaの乱数生成プログラム-バグを教えてください

このQ&Aのポイント
  • Web上で「重複しない乱数」を作るプログラムをいくつか見まして、どれもこれも何でこんな複雑なステップを踏むのであろう思い、どーだこんなに簡単に作れるじゃん・・・
  • 生成する乱数の数が100個とか200個とかなら問題ないんですが、例えば9桁の乱数を10000個作るように設定しても7500個くらいしかListに入りません。
  • 原因がどこにあるかお教えいただけますでしょうか。なにとぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.1

eclipseで実行結果を確認しているのであればコンソールの出力バッファを 超えているために前のほうが消えているのではないでしょうか? 参考URL先を見て設定を変更してみてください。 もし他の方法で出力しているのであれば一行ずつ出力するループの前後に "start","end"を出力して結果にもそれが出力されるか確認してみてください。

参考URL:
http://www.hitachi.co.jp/Prod/comp/soft1/manual/pc/d3M4160/EM410047.HTM
ushioja
質問者

お礼

ご回答ありがとうございました。バッファが足りない・・・どうして思いつかなかったのでしょう。まだjavaのプログラミングに自信がなくて、期待通りに動かないと即バグだとおもってしまうんです。それにしても今回の質問は穴があったら速攻で入ります。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

いろいろ突っ込みどころの多いコードだけど 動作上のバグはないわね。 その 7500個くらい というのはどうやって図ったの? たぶんその図り方に問題があると思っているわ。 mainを public static void main(String[] args) throws Exception { PrintStream out = new PrintStream(new File("C:\\log.log")); addList(); // 生成された乱数を要素に持つリスト list を取得 // 要素をひとつずつコンソール出力 for (String s : list) { out.println(s); } } こう書き換えて実行後log.logを見てみなさい。 ちゃんと10000個出ているはずよ。

ushioja
質問者

お礼

ご回答ありがとうございました。おっしゃるとおりです。もう、何も考えずあたふたとつまらない質問をしてしまいましてすみませんでした。質問する前にファイルに落として確認するとか、当然のことなのに。これから気をつけます。

関連するQ&A