1 00:00:00,000 --> 00:00:03,110 >> スピーカ1:の最後のバージョンで シグマ、私が呼ぶようなものに実装 2 00:00:03,110 --> 00:00:06,570 私が使用したことにより、反復解法、 フォワードループは、すべてをカウントアップ 3 00:00:06,570 --> 00:00:09,720 その後1とMの間の数字 合計を返す。 4 00:00:09,720 --> 00:00:12,560 >> しかし、それは我々が別のものを使用することができますが判明 同じ技術を実装する 5 00:00:12,560 --> 00:00:15,120 機能、技術 再帰として知られている。 6 00:00:15,120 --> 00:00:19,360 再帰関数、いわば、 単純に自分自身を呼び出すものです。 7 00:00:19,360 --> 00:00:21,290 今、それ自体は、その 問題になるかもしれません。 8 00:00:21,290 --> 00:00:24,500 関数は単にそれ自体を呼び出す場合 自分自身を呼び出す自分自身を呼び出す、 9 00:00:24,500 --> 00:00:26,080 そのプロセスは終了し、これまでボットかもしれません。 10 00:00:26,080 --> 00:00:30,490 しかし、長い間、我々には、いわゆる 基本ケース、確実に条件 11 00:00:30,490 --> 00:00:34,930 いくつかの状況で、我々は呼び出すことはありませんことを 自分自身、そうでない場合の、そのプロセス 12 00:00:34,930 --> 00:00:37,070 無限ループを止めるべき。 13 00:00:37,070 --> 00:00:39,180 >> それでは、再実装しましょう 次のようにシグマ。 14 00:00:39,180 --> 00:00:43,810 nが0以下であれば、私は今 単純に、やや恣意、 15 00:00:43,810 --> 00:00:45,670 0を返すつもり。 16 00:00:45,670 --> 00:00:49,370 他に何私がやろうとしてたんだけど、実際には 正のintのためにシグマを計算する 17 00:00:49,370 --> 00:00:50,460 私は、受け継がれてきたこと。 18 00:00:50,460 --> 00:00:52,050 >> 今、Mのシグマは何ですか? 19 00:00:52,050 --> 00:00:55,480 さて、Mのシグマは、もちろんですが、 mまでの1までの合計。 20 00:00:55,480 --> 00:00:58,820 しかし、我々はそれについて、他の方法を考えている場合、 単にメートルプラスmの合計の 21 00:00:58,820 --> 00:01:02,560 マイナス1プラスMマイナス2など、 ずっと1まで。 22 00:01:02,560 --> 00:01:08,080 だから、そういう意味では、と思われる 私は単にMプラスを返すことができます。 23 00:01:08,080 --> 00:01:10,210 >> そして私は、Mのマイナスが必要です 1プラスMマイナス2。 24 00:01:10,210 --> 00:01:13,470 しかし、私は与えることができます機能を持っている 私正確にその答え、すなわち、 25 00:01:13,470 --> 00:01:16,340 Mマイナス1シグマ。 26 00:01:16,340 --> 00:01:19,670 >> さて、このように自分自身を呼び出していません 最高のアイデアのように思える。 27 00:01:19,670 --> 00:01:22,610 シグマはシグマを呼び出す場合呼び出すので、 シグマを呼び出しシグマは、 28 00:01:22,610 --> 00:01:24,480 このプロセスと思うだろう これまでに終了しない場合があります。 29 00:01:24,480 --> 00:01:27,720 我々は、いわゆるベースを持っていた理由が、それはだ この関数の先頭にある場合。 30 00:01:27,720 --> 00:01:31,540 mがある場合にチェックするif条件 私はつもりはない0以下 31 00:01:31,540 --> 00:01:32,610 自分自身を呼び出すことができます。 32 00:01:32,610 --> 00:01:37,010 私の代わりに、0を返すつもりだどの 順次に追加されようとしている 33 00:01:37,010 --> 00:01:39,950 私が合算されてきた以前の番号 それによってこれを停止させる、アップ 34 00:01:39,950 --> 00:01:41,740 そうでなければ無限のプロセス。 35 00:01:41,740 --> 00:01:43,710 >> それでは見てみましょう場合は、この新しい 実装が動作します。 36 00:01:43,710 --> 00:01:46,510 コンパイルの保存しましょう​​、と このプログラムを実行する。 37 00:01:46,510 --> 00:01:50,640 シグマ1ドットを作るシグマ1を大幅に削減する。 38 00:01:50,640 --> 00:01:52,900 とのはそれを提供してみましょう 前と同じ番号。 39 00:01:52,900 --> 00:01:55,520 うまくいけば、私に3を与える必要があります2。 40 00:01:55,520 --> 00:01:58,970 それでは、3でそれを提供してみましょうどの うまくいけば、私に6を与える必要があります。 41 00:01:58,970 --> 00:02:03,480 とのは最終的にそれを提供しましょう 確かに私に1275を与え50、。 42 00:02:03,480 --> 00:02:06,130