日報#8|階乗計算とresultのナゾ。

1.本日の作業内容
⬛︎階乗計算のプログラムの書き方を学んだ。
◼︎理解度100%(※要復習)
2.直面した課題と対応
⬛︎問題点
result = 1とresult = result * 1が理解できない。
⬛︎対応:以下、学んだこと。
◼︎result = 1は、まず1で初期化している。
・初期化というのは、変数を使用する前にその変数
に初期値を代入する操作。
・これにより、変数が未定義の状態で使用される
ことを防ぎ、プログラムの予期せぬ動作を防止。
◼︎どうして「1」で初期化するのか。今回は掛け算。
掛け算の場合の単位元が「1」だから。
・単位元とは、演算においてある元(数)に作用して
も、その値を変化させない特別な元のこと。
掛け算の場合は、どんな値aに対してもa*1=aが
成り立つことから、単位元は「1」。
・ちなみに足し算の単位元は「0」
◼︎次に、result = result * Iについて。
⚠︎ちなみに、今回は自分がわかりやすいように
この書き方を選んだが、result *=iも同義。
乗算子と呼ぶ。
・先ほどresult = 1と宣言しているので、
result = 1 * iでresult = iという答えになる。
・今回はiが1~nにある場合、計算が繰り返される
ように指示しているので、例えばn=5だとしたら、
result = 1 * 1 = 1
result = 1 * 2 = 2
result = 2 * 3 = 6
result = 6 * 4 = 24
result = 24 * 5 = 120
のように積がresultに代入されて、n=5まで計算
される仕組みになっている。
・結果5!つまりn!が計算されたことになる。
うん、なるほどわだはresultが両辺にあるところ
がイマイチ理解できていなくて…
一度x=result*iで計算してみた。すると、
例えばn=5だとして、まず
x= 1*1=1で積が求められるが
この値を再度代入して計算すると
いう工程が踏めないということに
気づいた。
代入して計算、代入して計算を
繰り返していくために
result=result*iという表記に
なっているということ。
3.残っている課題等、明日の予定
△階乗計算プログラムについて理解度100%
だけれど、要復習!
⬛︎datetimeモジュール、クラス、メソッドを学ぶ。
4.気づき、学び
resultについての学びはとても大きかった。
理解するまでに時間がかかったけれど、ちゃんと
自分の考えに落とし込んで理解するところまで
できた。要復習!!!



人間って忘れる生き物らしい。
今日理解できたことを忘れない
ためにも、とにかく復習!復習!
復習!









コメント