このディレクトリの索引
#  出題場所 :: http://toro.2ch.net/test/read.cgi/tech/1357191974/990
#  お題:円周率の歴史の長さからみれば出来立てほやほやのBBPの式を使って 
#  円周率を小数点以下15桁まで求める。 
#    ∞ 
#  π=Σ(4/(8*k+1)-1/(4*k+2)-1/(8*k+5)-1/(8*k+6))/(16^k) 
#    k=0 
# 
# 

'円周率の歴史の長さからみれば出来立てほやほやのBBPの式を使って円周率を小数点以下15桁まで求める。'(_円周率) :-
        'BBPの式'(_円周率_1),
        sformat(S,'~15f',[_円周率_1]),
        read_term_from_atom(S,_円周率,[]).

'BBPの式'(_円周率) :-
        findsum(A,(
                    between(0,20,_k),
                    A is (4/(8*_k+1)-1/(4*_k+2)-1/(8*_k+5)-1/(8*_k+6))/(16^_k)),
                _円周率). 

findsum(A,B,C) :-
        findall(A,B,L),
        sum_list(L,C).