ロジカルLABO芽育 姉妹校
AIがあれば知識はいらない?
AIに任せておけば、勉強は不要?
この問いかけに応えるべく、ひとつ実験してみました。
Chat-CPT4に「最大公約数を探すプログラムをVBAで書いてください」と聞いてみました。
すると文末に示す「20と48」を例に最大公約数を探すコードを生成されました。
最大公約数を求めるコードを生成AIに尋ねる
さて、この簡単なコードをExcelVBAで実際に動かしてみますと…
「4」と表示され、正しく動作することがわかりました。
しかし、このプログラムがどういう考えで組まれているのか、なぜ動作するのかは、プログラムを学んで動かした人でなければ、わかりません。
解説もありますが、プログラミングと数学の知識と実践経験がなければ理解が難しいと思います。つまり…
「ただ、動くだけ」です。
勉強後に使う生成AIは「立派な道具」
一方で、すでに基礎学習を終え、課題に取り組んでみて「あと少し」を超えられない人がAIを使えば
「なるほど!そういう解き方もあるのか」と理解が深まります。
私見ですが、生成AIは登場したてのパソコンやインターネットのころと同じように
「人間の知識や知恵の積み上げの先に助けてくれる『道具』」だと感じます。
生成AIが返してきた最大公約数を求めるExcelVBAのコード
Sub sampleCall()
MsgBox sampleGcd(48, 20)
End Sub
Function sampleGcd(ByVal m As Long, ByVal n As Long) As Long
If n = 0 Then
sampleGcd = m
Else sampleGcd = sampleGcd(n, m Mod n)
End If
End Function
生成AIが返してきた最大公約数を求めるExcelVBAのコードの解説
このコードは、再帰呼出しを使用して最大公約数を計算します。
sampleCallサブプロシージャ内のMsgBox sampleGcd(48, 20)の数字を
任意の2つの整数に変更することで、その数字の最大公約数を求めることができます。
ユークリッドの互除法は、2つの自然数aとbの最大公約数を求める方法で、以下の手順で行います。
1.aをbで割り、余りrを求める。
2.bをrで割り、その余りr1を求める。
3.rをr1で割り、その余りr2を求める。
4.余りが0になるまで繰り返します。余りが0になった時点の割る数が最大公約数です。
最大公約数は、2つ以上の数を割り切る数の中で共通している最も大きな数です。
引用元:Copliot