このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1342966104/900
#  [1]C言語 
#  [2] 問題文(含コード&リンク): 
#  http://ime.nu/codepad.org/Gpxv1fSh 
#  
#  /*
#  問題1. 整数データの配列に対してソートをかける関数を挿入ソートにより作成し、正し
#  く動くことを確認せよ。
#  問題2. 問題1 を変更して、ソートの際に行われる比較、代入の回数も求める様にせよ。
#  問題3. 0 以上1 より小さい一様乱数を返す関数double urandom() を作成し、確認せよ。
#  問題4. 0 からn-1 の値を返す関数nrandom(int n) を作成し、確認せよ。
#  問題5. 乱数関数を用いて整数データをn個作成する関数make_data(unsigned int s, int n)
#  を作成せよ(ここでs はseed)。作成するデータは、n-1 以下とし、それを配列
#  data[SIZE] に格納する。
#  問題6. 問題2 を変更して、問題5 で作られたデータを用いてソートを行うプログラムを
#  作成せよ。n = 10、100、1000 で実行して比較しなさい。(seed の設定は同じものを
#  用いて比較する)。
#  */

'乱数関数を用いて整数データをn個作成する関数make_data(unsigned int s, int n)を作成せよ(ここでs はseed)。作成するデータは、n-1 以下とし、それを配列data[SIZE] に格納する。'(_s,_n,_乱数データならび) :-
        make_data(_s,_n,_乱数データならび).

make_data(_s,_n,_乱数データならび) :-
        length([_|Ln],_n),
        findall(_x,(
                    member(_,Ln),
                    _x is random(_s),
                    _y is random(_s),
                    (   _y == 0,!,fail;true)),
                _乱数データならび).