このディレクトリの索引

'1が2個または3個連続して以外には現れない8列の2進数を10進数に変換'(X) :-
    length(L,8),
    u(L),
    '2進数ならびから10進数に変換'(L,X).

u([]).
u([1,1,1]).
u([1,1]).
u([1,1,1,0|R]) :- u(R).
u([1,1,0|R]) :- u(R).
u([0|R]) :- u(R).

'2進数ならびを10進数に変換'(_2進数ならび,_10進数) :-
    '2進数ならびを10進数に変換'(_2進数ならび,0,_10進数).

'2進数ならびを10進数に変換'([],N,N).
'2進数ならびを10進数に変換'([1|R],N,X) :-
    M is 2 * N + 1,
    '2進数ならびを10進数に変換'(R,M,X).
'2進数ならびを10進数に変換'([0|R],N,X) :-
    M is 2 * N,
    '2進数ならびを10進数に変換'(R,M,X).