このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 162代目 #654 # [1] 授業単元: プログラミング # [2] 問題文(含コード&リンク): # 無限等比級数の和を各項を順に加算していくことにより求めるプログラム # 1+(1/3)+(1/9)+(1/27)+..... # ただし、0.00001以下となる項を加えた時点で加算を終了することとする。 # '無限等比級数の和を各項を順に加算していくことにより求めるプログラム 1+(1/3)+(1/9)+(1/27)+..... ただし、0.00001以下となる項を加えた時点で加算を終了することとする。'(_無限等比級数) :- 無限等比級数の和を各項を順に加算していく(_無限等比級数). 無限等比級数の和を各項を順に加算していく(_無限等比級数) :- '100000以下の3の等比数列'(_100000以下の3の等比数列), 自分以外の要素を全部掛けることによって作られる数列の合計(_100000以下の3の等比数列,_分子), ならびすべてを掛ける(_100000以下の3の等比数列,_分母), _無限等比級数 is _分子 / _分母. '100000以下の3の等比数列'(_100000以下の3の等比数列) :- '100000以下の3の等比数列'(1,_100000以下の3の等比数列). '100000以下の3の等比数列'(M,[M]) :- M >= 100000,!. '100000以下の3の等比数列'(M,[M|R]) :- M_2 is M * 3, '100000以下の3の等比数列'(M_2,R). 自分以外の要素を全部掛けることによって作られる数列の合計(L1,_数列の合計) :- findall(M,自分以外の要素を全部掛ける(L1,M),_数列), sum_list(_数列,_数列の合計). 自分以外の要素を全部掛ける(L1,M) :- select(_,L,R), ならびを全部掛ける(R,M). ならびすべてを掛ける(L,M) :- atomic_list_concat(L,'*',S), read_term_from_atom(S,_式,[]), M is _式.