第8講 社員が自分自身に仕事を命令する=メソッドの再帰的使用

第3話 分身の術による1から100までの和プログラム解説
cihwq
を実現するプログラム例
#! ruby -Ks
def f(n)
 if n>0 then
  a=f(n-1)
 else
  return 0
 end
 return a+n
end
print "1から100までの和=",f(100),"\n"
参考ダウンロード添付ファイル

1番内側まで進んで、
そこに見た自分の本質は0でした。
ここから、逆遡及が始まります。
つまり、1番内側の箱(人形)から1番外側への箱(人形)への旅が始まるのです。
1番内側の箱(人形)は、内側から2番目の箱(人形)に
  return 0
0を返します。
内側から2番目の箱(人形)から、1番内側の箱(人形)の中身は何と問い合わせを受け、
0だよ、空っぽだよと、内側から2番目の箱(人形)に報告したのです。
                  ↓
内側から2番目の箱(人形)は、
1番内側の箱(人形)から受け取った値0に、
nの値(箱の番号)1を加えた1を内側から3番目の箱(人形)に返します。
                  ↓
内側から3番目の箱(人形)は、
内側から2番目の箱(人形)から受け取った値1に、
nの値(箱の番号)2を加えた3を内側から4番目の箱(人形)に返します。
                  ↓
内側から4番目の箱(人形)は、
内側から3番目の箱(人形)から受け取った値3に、
nの値(箱の番号)3を加えた6を内側から5番目の箱(人形)に返します。
                  ↓
内側から5番目の箱(人形)は、
内側から4番目の箱(人形)から受け取った値6に、
nの値(箱の番号)4を加えた10を内側から6番目の箱(人形)に返します。
                  ↓
                   ・
                   ・
                   ・
以上の過程

0→0+1→1+2→3+3→6+4→・・・
すなわち、
0→0+1→(0+1)+2→(0+1+2)+3→(0+1+2+3)+4→・・・
結局
0→0+1→0+1+2→0+1+2+3→0+1+2+3+4→・・・
となっているのがお分かりですか。




第2話へ 第4話へ


004

eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
vba 2013 2010 2007 入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門第1部へ
本サイトトップへ