>>553
当方の環境は WindowsXP / 処理系は cygwin(gcc 3.4.4) です。
(1), (2), (4) について作成しました。(4) が完成すれば、(3) はそれに含まれるからです。
なお、(4) では、当方の処理系では rand()/srand() の性能が悪く期待した結果がでなかったので、
M系列乱数を使用しました。
rand() のかわりに xrandom(), srand() のかわりに init_xrandom() を使用していますので、
必要ならば、その部分を書き換えてください。

(1) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5269.txt
(2) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5270.txt
(4) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5272.txt