- ベストアンサー
Rubyのプログラムについて
Rubyのプログラムについて、宜しければ教えてください。 def fct(n, f=1) if n<=1 then f else fct(n-1, n*f) end end def factorial(n) (1..n).inject{|x,y| x*y} end def factorial(n) eval( [*(1..n)].join("*") ) end このプログラムが、階乗を計算するメソッドになっているみたいなのですが、なぜコレだけで階乗が計算できるのでしょうか? 宜しければ教えてください><
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
知識ゼロを前提に説明するのは大変なので、質問です。 (1) Ruby言語の基本的な文法は知っていますか? 知らない場合、他に知っているプログラミング言語はありますか? 知っている場合、injectとjoinのリファレンスを読んでおいてください。 (2) 3つともわかりませんか? (3) 階乗の帰納的な定義は理解していますか?
お礼
自己解決しました。 有難うございました。
補足
(1)Rubyについては、ほぼ初心者です。言語はCとC++を良く使ってます (2)上は分かりますが下2つが良く分かりません (3) nから1まで掛けていくことですか?