chatGTPをやってみた
先日の投稿で30000より大きい最小の整数について書いたが、これをプログラムを書いて確認しようと思った。そうだ、AIにPythonのプログラムを書いてもらえば手っ取り早い!と思ってPythonの環境をインストールしてみた。というか、アンドロイドアプリにあるのだから素晴らしい。
で、chatGPTにログインして、そういえば素数を求めるくらいならAIにもできるだろうと思って聞いてみた。そしたら、とてもポンコツだった。
私)30000より大きい最小の素数を教えてください
AI)30000より大きい最小の素数は、32941です。
おいおい、もう違う。
私)30011は素数ですか?
AI)30011は素数です。
ならさっきのは間違いじゃないか、とか思うが、もう一度同じことを聞いてみよう。
私)30000より大きくて、もっとも小さい素数を教えてください。
AI)30000より大きくて、もっとも小さい素数は30001です。
答えが変わった…。ってか、30001は素数じゃないってことを知らないのかな?
私)30001の約数を教えてください。
AI)30001は、1と自分自身である30001以外の約数を持ちません。つまり、30001は素数であるため、その約数は1と30001の2つだけです。
自信満々に返された…
私)30001を19で割るといくらになりますか?
AI)30001を19で割った場合、商は1578で余りは19になります。つまり、次のように表せます。
30001 ÷ 19 = 1578 ... 19
別の問題が発生…
私)19で割った余りが19になることはありますか?
AI)19で割った余りが19になることはありません。19で割った余りは、必ず0以上18以下の整数になります。19で割った余りが19になるためには、19で割る数が19の倍数である必要がありますが、この場合は商が求まりますので、余りは0になります。
わけわからなくなってきた…
私)では、30001を19で割ってください。
AI)30001を19で割った場合、商は1578で余りは19になります。つまり、次のように表せます。
30001 ÷ 19 = 1578 ... 19
私)その式はおかしいですね。なぜなら19で割った余りが19になっているからです。
AI)申し訳ありません、先に誤った情報を提供してしまいました。ご指摘ありがとうございます。
30001を19で割った場合、商は1578で余りは13になります。つまり、次のように表せます。
30001 ÷ 19 = 1578 ... 13
なんか適当に答えてない?って思ってしまう…
私)その式もおかしいですね。
19×1579を計算してみてください。
AI)申し訳ありません。先に提供した情報が誤っていたようです。
19で割った余りが19になるわけがありませんし、13も正しくありませんでした。
30001を19で割ると、商は1578で余りは9になります。
つまり、次のように表せます。
30001 ÷ 19 = 1578 ... 9
また、19×1578+9=30001も成り立ちます。
と、このあとも色々と聞いてみたが、AIも困っているようだ。素数であるかどうかが判断できない原因は色々考えられるが、余りの出る割り算を正確に計算できないことだろうかと思う。というか、もしかしたら計算結果を覚えているだけで、計算はしていないのかもしれない。
それにしても日本語はちゃんと伝わっているようだ。恐ろしく進化したものだとは思う。