このディレクトリの索引

# モジュラス10ウェイト3

モジュラス10ウェイト3(_数字列,_冗長符号) :-
        atom_chars(_数字列,_数字ならび),
        モジュラス10ウェイト3重み付けならびの生成(_数字ならび,[],_重み付けならび),
        モジュラス10ウェイト3(_数字ならび,_重み付けならび,0,_冗長符号).

モジュラス10ウェイト3([],[],S,_冗長符号) :-
        _冗長符号整数 is 10 - (S mod 10),
        number_chars(_冗長符号整数,[_冗長符号]),!.
モジュラス10ウェイト3([A|R1],[M|R2],S1,_冗長符号) :-
        atom_number(A,N),
        S2 is S1 + N * M,
        モジュラス10ウェイト3(R1,R2,S2,_冗長符号),!.

モジュラス10ウェイト3重み付けならびの生成([],L,L) :- !.
モジュラス10ウェイト3重み付けならびの生成([_],L,[3|L]) :- !.
モジュラス10ウェイト3重み付けならびの生成([_,_|R1],L1,L) :-
        モジュラス10ウェイト3重み付けならびの生成(R1,[1,3|L1],L).