このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1301553333/659
#  [1] 授業単元:再帰プログラミング 
#  [2] 問題文:n人でr個に分ける方法の数 nSrはStirling数という。関数Stirling 作成せよ。 
#  ここで nSr = n-1Sr-1 + n-1Srr , nS0 = 0 , nS1 = 1, nSr = 0(r > n) 
#  

'n人でr個に分ける方法の数 nSrはStirling数という。'(_n人,_r個,_Stirling数) :-
        nSr(_n人,_r個,_Stirling数).

nSr(_n,_r,0) :- _r > _n,!.
nSr(_,0,0) :- !.
nSr(_,1,1) :- !.
nSr(_n,_r,_nSr) :-
        _n_1 is _n - 1,
        _r_1 is _r - 1,
        nSr(_n_1,_r_1,_nSr_1),
        nSr(_n_1,_r,_nSr_0),
        _nSr is _nSr_0 + _nSr_1.