% 1. prolog kisházi ("http://dp.iit.bme.hu/dp-current/dp06a-pl1-khf.html"),
% 2006. nov. 27., Zsbán Ambrus
% 
% binoms(+N,?L): Az L lista az N-edrendû binomiális együtthatókat tartalmazza,
%                azaz N+1 elemû és (0-tól számozva) I-edik elemének értéke "N alatt az I".


binoms(N, L) :- 0 =< N, binoml(N, R), L = R.

binoma(N, K, S, Binoma) :- 
    K =< 0, !, Binoma = S.
binoma(N, K, S, Binoma) :- 
    Diff is K - 1, [B| R] = S, Quot is (B * K) // ((N - K) + 1), 
    Case = [Quot| S], binoma(N, Diff, Case, Binoma).

binoml(N, Binoml) :- 
    binoma(N, N, [1], Binoml).

