このディレクトリの索引

# # 子供がn段の階段を駆け上がりますが、一歩で1段、2段、もしくは3段を登ることができます。 # このとき、考え得る階段の上がり方が何通りあるか求めるメソッドを実装してください。 '子供がn段の階段を駆け上がりますが、一歩で1段、2段、もしくは3段を登ることができます。このとき、考え得る階段の上がり方が何通りあるか求める。'(_n,_何通り) :- length(Ln,_n), 度数('子供がn段の階段を駆け上がりますが、一歩で1段、2段、もしくは3段を登ることができます。このとき、考え得る階段の上がり方。'([],Ln,L),_何通り). '子供がn段の階段を駆け上がりますが、一歩で1段、2段、もしくは3段を登ることができます。このとき、考え得る階段の上がり方。'(L,L,[]). '子供がn段の階段を駆け上がりますが、一歩で1段、2段、もしくは3段を登ることができます。このとき、考え得る階段の上がり方。'(_前回までに登った段,Ln,[_一歩で何段|_残りの段]) :- append(_前回までに登った段,[_|_],Ln), '一歩で1段、2段、もしくは3段を登ることができます'(_前回までに登った段,_一歩で何段,_登った段), '子供がn段の階段を駆け上がりますが、一歩で1段、2段、もしくは3段を登ることができます。このとき、考え得る階段の上がり方。'(_登った段,Ln,_残りの段). '一歩で1段、2段、もしくは3段を登ることができます'(_前回までに登った段,_一歩で何段,_登った段) :- member(_一歩で何段,[[_],[_,_],[_,_,_]]), append(_前回までに登った段,_一歩で何段,_登った段). 度数(P,_度数) :- findall(1,P,L), length(L,_度数).