このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 131代目 #256 # # 2変量のデータ {{x1, y1}, {x2, y2}, ... , {xn, yn}} を引数として,散布図と相関係数を出力する関数を作成せよ. 相関係数(_サンプルならび,_相関係数) :- 'サンプルならびの要素数、X要素、Y要素のそれぞれの、標準偏差、平均値を得て相関係数をもとめる'(_サンプルならび,_相関係数). 'サンプルならびの要素数、X要素、Y要素のそれぞれの、標準偏差、平均値を得て相関係数をもとめる'(_サンプルならび,_相関係数) :- 'サンプルならびの要素数、X要素、Y要素のそれぞれの、標準偏差、平均値を得て'(_サンプルならび,_サンプルならびの要素数,LX,LY,_標準偏差X,_標準偏差Y,_平均値X,_平均値Y), 相関係数をもとめる(_サンプルならびの要素数,LX,LY,_標準偏差X,_標準偏差Y,_平均値X,_平均値Y,_相関係数). 'サンプルならびの要素数、X要素、Y要素のそれぞれの、標準偏差、平均値を得て'(_サンプルならび,_サンプルならびの要素数,_標準偏差X,_標準偏差Y,_平均値X,_平均値Y) :- 'サンプルならびの要素数'(_サンプルならび,_サンプルならびの要素数), 'X要素、Y要素のそれぞれの、標準偏差、平均値を得て'(_サンプルならび,_サンプルならびの要素数,LX,LY,_標準偏差X,_標準偏差Y,_平均値X,_平均値Y). 'サンプルならびの要素数'(_サンプルならび,_サンプルならびの要素数) :- length(_サンプルならび,_サンプルならびの要素数). 'X要素、Y要素のそれぞれの、標準偏差、平均値を得て'(_サンプルならび,_サンプルならびの要素数,LX,LY,_標準偏差X,_標準偏差Y,_平均値X,_平均値Y) :- x要素の取り出し(_サンプルならび,LX), y要素の取り出し(_サンプルならび,LY), 相加平均(LX,_サンプルならびの要素数,_平均値X), 相加平均(LY,_サンプルならびの要素数,_平均値Y), 標準偏差(LX,_平均値X,_標準偏差X), 標準偏差(LY,_平均値Y,_標準偏差Y). x要素の取り出し(L,LX) :- findall(X,member([X,_],L),LX). y要素の取り出し(L,LY) :- findall(Y,member([_,Y],L),LY). 相関係数をもとめる(_サンプルならびの要素数,LX,LY,_標準偏差X,_標準偏差Y,_平均値X,_平均値Y,_相関係数) :- findsum(U,( between(1,_サンプルならび要素数,I), nth1(I,LX,X), nth1(I,LY,Y), U is (X-_平均値X) * (Y-_平均値Y)),S1), _相関係数 is ( 1 / ((Len-1)*_標準偏差X*_標準偏差Y)) * S1.