このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1248012902/357
#  【課題】 
#  整数値を値とする5行3列の大きさの2次元配列 a を定義し,0 から 9 までの整数乱数を代入して初期化する。 
#  2次元配列 a をモニタ(標準出力)に表示する。 
#   
#  【形態】1. Javaアプリケーション(main()で開始) 
#  【期限】10/16 
#  【Ver】1.6.0_11  
#  実行結果として 
#  $ java Kadai 
#    a[0,0] = 8  a[0,1] = 0  a[0,2] = 8 
#    a[1,0] = 9  a[1,1] = 0  a[1,2] = 3 
#    a[2,0] = 0  a[2,1] = 2  a[2,2] = 8 
#    a[3,0] = 0  a[3,1] = 6  a[3,2] = 1 
#    a[4,0] = 3  a[4,1] = 9  a[4,2] = 8 
#   
#  ただし、この例の配列要素の値は整数乱数であるので、場合ごとに異なった値が代入されている。 
#  だそうです。まったく意味がわかりません。お願いします 

t780(L) :-
    '要素数Nの0から9までの乱数ならびを得る'(15,_乱数ならび),
    'N個組'(3,_乱数ならび,L),
    t780表示(L),!.

t780表示(L) :-
    for(1,N,5),
    list_nth(N,L,L1),
    t780行表示(N,L1),
    write('\n'),
    N = 5,!.

t780行表示(N,L) :-
    N1 is N - 1,
    for(1,M,3),
    list_nth(M,L1,V),
    M1 is M - 1,
    write_formatted(' a[%t,%t] = %t ',[N1,M1,V]),
    M = 3,!.

'N個組'(_,[],[]) :- !.
'N個組'(N,L,[U|R]) :-
    先頭からN個(N,L,U,R1),
    'N個組'(N,R1,R).

先頭からN個(_,[],[],[]) :- !.
先頭からN個(0,L,[],L) :- !.
先頭からN個(N,[A|R1],[A|R2],R) :-
    N1 is N - 1,
    先頭からN個(N1,R1,R2,R).

'要素数Nの0から9までの乱数ならびを得る'(N,_乱数ならび) :-
    St is random mod 25123,
    乗算合同法によってM個の正規分布ならびを得る(N,St,_正規分布ならび),
    findall(Ran,(member(V,_正規分布ならび),Ran is truncate(1000 * V) mod 10),_乱数ならび).

乗算合同法によってM個の正規分布ならびを得る(M,_初期値,L) :-
    乗算合同法による正規分布ならび(M,16087,_初期値,65535,L).

乗算合同法による正規分布ならび(0,A,N,_法,[]) :- !.
乗算合同法による正規分布ならび(M,A,N,_法,[X|R]) :-
    X is N / _法,
    乗算合同法演算(A,N,_法,N2),
    M1 is M - 1,
    乗算合同法による正規分布ならび(M1,A,N2,_法,R).

乗算合同法演算(A,N,_法,N2) :-
    N2 is (A * N) mod _法.