加藤祐介ブログ

ChatGPTでシェル芸勉強会の問題が解きたい

記事投稿日: 2023年4月12日(水)

最終更新日: 2024年3月30日(土)

はじめに

月額20ドルを支払ってGPT-4が利用できるようになったので、 ChatGPTにシェル芸勉強会の問題を解いていただこうと思います。 シェル芸勉強会の問題をお借りします(すみません)。 今回は第63回シェル芸勉強会の問1と問2に挑戦してもらいます。

リンク

利用モデル:GPT-4
第63回ビッグハンドタウンシェル芸勉強会の問題と解説 実行環境:websh

問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はかなり便利な気がするので様々な場面で利用していきたい所存です。 それでは、また。

お知らせ

シェル芸オンラインジャッジ

加藤祐介ブログはMITライセンスで公開されています。
Copyright Since 2023 (C) YusukeKato All Rights Reserved.