このディレクトリの索引

ハミング距離(_文字列_1,_文字列_2,_ハミング距離) :-
'等しい文字数を持つ二つの文字列の中で、対応する位置にある異なった文字の個数'(_文字列_1,_文字列_2).

'等しい文字数を持つ二つの文字列の中で、対応する位置にある異なった文字の個数'(_文字列_1,_文字列_2) :-
'等しい文字数を持つ二つの文字列の中で'(_文字列_1,_文字列_2),
対応する位置にある異なった文字の個数(_文字列_1,_文字列_2,_対応する位置にある異なった文字の個数).

'等しい文字数を持つ二つの文字列の中で'(_文字列_1,_文字列_2) :-
atom_length(文字列_1,_文字数),
atom_length(文字列_2,_文字数).

対応する位置にある異なった文字の個数(_文字列_1,_文字列_2,_対応する位置にある異なった文字の個数) :-
個数(対応する位置にある異なった文字の(_文字列_1,_文字列_2),_対応する位置にある異なった文字の個数).

個数(P,_個数) :-
findall(1,P,L),
length(L,_個数).

対応する位置にある異なった文字の(_文字列_1,_文字列_2) :-
対応する位置にある(_文字列_1,_文字列_2,_文字_1,_文字_2),
異なった文字(_文字_1,_文字_2).

対応する位置にある(_文字列_1,_文字列_2,_文字_1,_文字_2) :-
sub_atom(_文字列_1,S,1,R,_文字_1),
sub_atom(_文字列_2,S,1,R,_文字_2).

異なった文字(_文字_1,_文字_2) :-
\+(_文字_1 = _文字_2).