このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1370255305/751
#  (sum, kosu)に対して、 
#  sum  =  a1 + ・・・  + an (  n <= kosu ,  1 <= ai <= 4 ) 
#  を満たす、数列 (a1,・・・ ,an)は何通りあるか? 
# 
# 

'(sum, kosu)に対して、sum  =  a1 + ・・・  + an (  n <= kosu ,  1 <= ai <= 4 )
を満たす、数列 (a1,・・・ ,an)は何通りあるか? '(_sum,_kosu,_何通り) :-
        findall(_n,between(1,_n,_kosu),_1からの_kosuまでの整数ならび),
        count('(sum, kosu)に対して、sum  =  a1 + ・・・  + an (  n <= kosu ,  1 <= ai <= 4 )
を満たす、数列 (a1,・・・ ,an)'(_1からの_kosuまでの整数ならび,_sum,_kosu,L),_何通り).

'(sum, kosu)に対して、sum  =  a1 + ・・・  + an (  n <= kosu ,  1 <= ai <= 4 )
を満たす、数列 (a1,・・・ ,an)'(_1からの_kosuまでの整数ならび,_sum,_kosu,L) :-
        between(1,_n,_kosu),
        組み合わせ(_1からの_kosuまでの整数ならび,_n,L),
        sum(L,_sum).