はじめに
月額20ドルを支払ってGPT-4が利用できるようになったので、 ChatGPTにシェル芸勉強会の問題を解いていただこうと思います。 シェル芸勉強会の問題をお借りします(すみません)。 今回は第63回シェル芸勉強会の問1と問2に挑戦してもらいます。
リンク
https://engineers.ntt.com/entry/2023/03/09/091735
第63回ビッグハンドタウンシェル芸勉強会の問題と解説
問1 : 九九の合計
私が入力した文章
ワンライナーのBashスクリプトで九九の掛け算(1×1~9×9まで)の答えの合計を求めてください。
ChatGPTが書いたBashスクリプト
sum=0; for i in {1..9}; do for j in {1..9}; do sum=$((sum + i * j)); done; done; echo $sum
実行結果
2025
私の感想
ワンライナーと言えるかは怪しいですが、普通に解いていただけてとても嬉しいです。 デバッグをする必要もなく、一発で実行可能なスクリプトを出力してもらえました。 「GPT-4が凄い!」という噂は間違いではないのかもしれません。 この調子でもう一問、解いていただきましょう。
問2 : おつりの出し方
私が入力した文章
ワンライナーのBashスクリプトで9132円の支払いに10000円札で払ったときのおつりの出し方を求めてください。
ChatGPTが書いたBashスクリプト
change=$((10000 - 9132)); echo "おつり: ${change}円"; echo "5000円札: $((change / 5000))"; change=$((change % 5000)); echo "1000円札: $((change / 1000))"; change=$((change % 1000)); echo "500円硬貨: $((change / 500))"; change=$((change % 500)); echo "100円硬貨: $((change / 100))"; change=$((change % 100)); echo "50円硬貨: $((change / 50))"; change=$((change % 50)); echo "10円硬貨: $((change / 10))"; change=$((change % 10)); echo "5円硬貨: $((change / 5))"; change=$((change % 5)); echo "1円硬貨: $((change))"
実行結果
おつり: 868円
5000円札: 0
1000円札: 0
500円硬貨: 1
100円硬貨: 3
50円硬貨: 1
10円硬貨: 1
5円硬貨: 1
1円硬貨: 3
私の感想
かなりの力技で問題を解いてもらいました。 ワンライナーと言えるかは分かりませんが、普通に解いていただけてとても嬉しい気持ちです。 今回もエラーが出ることはなく、すんなり実行できました。 もっといろんな問題で試してみたいですね。
おまけ問題 : 円周率
私が入力した文章
ワンライナーのBashスクリプトで円周率を求めてください。
ChatGPTが書いたBashスクリプト
echo "scale=10; 4*a(1)" | bc -l
実行結果
3.1415926532
私の感想
はい。
おわりに
ChatGPTに第63回シェル芸勉強会の問1と問2を解いてもらいました。 普通に解いていただけて嬉しい限りです。 二問を解いただけではまだ何も分かりませんが、 GPT-4はかなり便利な気がするので様々な場面で利用していきたい所存です。 それでは、また。