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

はじめに 月額20ドルを支払ってGPT-4が利用できるようになったので、 ChatGPTにシェル芸勉強会の問題を解いていただこうと思います。 シェル芸勉強会の問題をお借りします(すみません)。 今回は第63回シェル芸勉強会の問1と問2に挑戦してもらいます。 リンク 利用モデル:GPT-4 https://engineers.ntt.com/entry/2023/03/09/091735 第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 私の感想 かなりの力技で問題を解いてもらいました。 ワンライナーと言えるかは分かりませんが、普通に解いていただけてとても嬉しい気持ちです。 今回もエラーが出ることはなく、すんなり実行できました。 もっといろんな問題で試してみたいですね。 ...

作成日: 2023年4月12日 · 最終更新日: 2024年3月30日 · Yusuke Kato

シェル芸botで遊びたい(Bash)

はじめに Twitterのシェル芸botで遊ばせていただく方法を紹介します。 遊び方 シェル芸botはハッシュタグ「シェル芸」をつけてシェル芸をツイートすると、 自動で実行して出力結果を教えてくれます。 たとえば、以下のようなツイートをすると出力結果「テスト」を引用リツイートで返してくれます (ただし、自分のアカウントがシェル芸botアカウントにフォローされている必要があります)。 echo テスト 画像生成 シェル芸botは画像生成もできます。 imagesディレクトリの中にpngやjpg、gifの画像を配置すると、 その画像を添付してツイートしてくれます。 たとえば、以下のようなツイートをすると「テスト」と書かれた画像を引用リツイートで返してくれます。 textimg "テスト" -o images/a.png Python シェル芸botではPythonスクリプトも実行できます。 たとえば、以下のようなツイートをすると出力結果「テスト」を引用リツイートで返してくれます。 Pythonの豊富なライブラリも利用できるので遊び方は無限大です。 python3 -c "print('テスト')" C/C++ シェル芸botではC言語やC++言語も実行できます。 たとえば、以下のようなツイートをすると出力結果「テスト」を引用リツイートで返してくれます。 高速に処理したいときなどに役立ちます。 cat<<EOF>a.cpp #include <bits/stdc++.h> int main() { printf("テスト\n"); } EOF g++ a.cpp ./a.out おわりに シェル芸botの遊び方を紹介しました。

作成日: 2023年4月11日 · 最終更新日: 2024年3月30日 · Yusuke Kato

HTML数式表示テスト

はじめに HTMLで数式を書こうと思います。 数式表示テスト 数式を表示するテストです。 HTMLのheadタグ内に以下を記述します。 <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js> </script> TeXの要領で数式を記述します。 \[ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \] 以下のように表示されます。 \[ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \]本文中に\( E = mc^2 \)のように数式を書くこともできます。 参考 : MathJaxによる数式表現 おわりに いい感じに表示されました。 今日も満足度は高いです。 HTMLを直書きするのはどうなんだろうと思いつつも、 いい感じに表示はされているので、 問題はなさそうだと思っております。 このブログで数式を記述することがあるのかどうか。 時代に逆行している気もしています。 そんな感じです。 それでは、また。

作成日: 2023年4月10日 · 最終更新日: 2024年3月30日 · Yusuke Kato

自作ブログ開始

はじめに いろんなところにブログ記事を書いてしまったがために、 自分自身でもどこに何を書いたのかよく分からない状態になってしまいました。 はてなブログもQiitaもZennも素晴らしいサービスではあるのですが、 やっぱりブログは一本に絞りたい気持ちもあります。 ということで、自作ブログを始めます。 自作と言ってもHTMLとCSSを頑張って書くだけです。 どこまで自作できるものなのかもよく分かっていません。 それでも自分で書いてみるというのは勉強になりそうなので良いと思います (学生の頃にも同じことを思ってブログを作った気がします……)。 2024年3月30日に追記:markdownをHTMLに変換するスクリプトを作成しました。 ブログの特徴 気をつけたいポイントは以下の三つです。 運用しやすいこと 執筆しやすいこと できるだけシンプルにすること ブログは細く長く続けていきたいので、 できるだけシンプルに保ちつつ、 楽に執筆できるようにしていきたい所存です (HTMLを直に書いている時点でもうダメかもしれませんが……)。 あとはGitHubにもファイルを置いて管理しやすくします。 コード表示テスト このブログでは、シェル芸の記事やロボット関係の記事も書いていきたいと思ってます。 ということでちょっとテストします。 以下のシェル芸は長い猫を時計の針のように回転させるものです。 p=.png;c=convert;longcat -o a$p;$c xc:[500x500] b$p;for((i=360;i<720;i+=10));do $c a$p -rotate +$i c$p;t=$(echo "($i-540)*3.14/180"|bc -l);$c b$p c$p -gravity center -geometry +$(echo "-99*s($t)"|bc -l)+$(echo "99*c($t)"|bc -l) -composite i$i$p;done; $c i*$p images/a.gif このシェル芸を実行して生成したGIF画像が以下のものです。 回る猫のGIF画像 おわりに いい感じに表示できましたね。 今日の満足度は高めです。 できれば一週間に一度くらいのペースで記事を更新できたら良いな~と思っておりますので、 今後も何卒よろしくお願いします。 それでは、また。

作成日: 2023年4月8日 · 最終更新日: 2024年3月30日 · Yusuke Kato