このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1248012902/287
#  【 課題 】以下のプログラムを元に標準偏差も計算できるように変更せよ。
# 数値は実数を受け入れられるようにせよ。
# データはファイルで与え1.0 2,0 3,0 4,0 5,0 を試してみよ。 
#  標準偏差は全体7カラム。小数点以下5桁で表せ。  

'最小値・最大値・標準偏差'(L,_最小値,_最大値,_標準偏差) :-
    length(L,_標本数),
    '算術平均'(L,_算術平均),
    L = [A|R],
    '最小値・最大値・標準偏差'(L,_標本数,A,_最小値,A,_最大値,_算術平均,0.0,_標準偏差) .

'最小値・最大値・標準偏差'([],_標本数,_算術平均,_最小値,_最小値,_最大値,_最大値,S,_標準偏差) :-
    _標準偏差 is sqrt(S / (_標本数 - 1)),
    ! .
'最小値・最大値・標準偏差'([A|R],_標本数,_最小値1,_最小値,_最大値1,_最大値,_算術平均,S,V) :-
    A < _最小値1,
    S2 is (A - _算術平均) ^ 2 + S,
    '最小値・最大値・標準偏差'(R,_標本数,A,_最小値,_最大値1,_最大値,_算術平均,S2,V),!.
'最小値・最大値・標準偏差'([A|R],_標本数,_最小値1,_最小値,_最大値1,_最大値,_算術平均,S,V) :-
    A > _最大値1,
    S2 is (A - _算術平均) ^ 2 + S,
    '最小値・最大値・標準偏差'(R,_標本数,_最小値1,_最小値,A,_最大値,_算術平均,S2,V),!.
'最小値・最大値・標準偏差'([A|R],_標本数,_最小値1,_最小値,_最大値1,_最大値,_算術平均,S,V) :-
    S2 is (A - _算術平均) ^ 2 + S,
    '最小値・最大値・標準偏差'(R,_標本数,_最小値1,_最小値,_最大値1,_最大値,_算術平均,S2,V).