考えを文章で伝える練習帳

考えを文章で伝える練習帳。文章を書く習慣を付けたいです。

赤マンモス本でイラっとするコード発見。


乱数を使って4桁の数字を得る手順として
1. 0-9からランダムに1つ選ぶ
2. 既に確定した数字と重複しているかチェック
3. 重複していたら1からやり直し
4. 重複していなかったらその数字を確定する
5. 確定数字が4個かどうかチェック
6. 4個なら終わり
7. それ以外は1からやり直し


1個目は絶対重複しないけど、2,3,4となるにつれて重複しやすくなるので、やり直し回数が増える。数字だから10種類しかないし、4桁なら問題無くても、1000種類から1000桁選ぶとかなるとかなり無駄が多くなる。これがぬるいと感じるかどうかは人それぞれと思うけど、質の高い入門書を謳うなら拡張性の高いサンプルコードであるべきと思う。


例えば


1. 0-9からランダムに選ぶ
2. 0-8からランダムに選ぶ
3. 0-7からランダムに選ぶ
4. 0-6からランダムに選ぶ
5. 1で選んだ数字を確定する
6. 5で確定した数字を除いて、2で選んだ数字番目に小さい数を確定する
7. 5,6で確定した数字を除いて、3で選んだ数字番目に小さい数を確定する
8. 5,6,7で確定した数字を除いて、4で選んだ数字番目に小さい数を確定する


これなら1000種類1000桁でも1000回程度乱数まわせばいい。やり直しなし。