日報#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についての学びはとても大きかった。
理解するまでに時間がかかったけれど、ちゃんと
自分の考えに落とし込んで理解するところまで
できた。要復習!!!

焦るな!

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

どうもこんにちは、わだです。プログラミングなんて未知の世界。そんなわだがエンジニアになるまでを綴っていきます。

コメント

コメントする

目次