「AI Programmer」にFizzBuzzを解かせたログ

Google Ad

主旨

昨日リリースされた、「AI Programmer」でFizzBuzzを解かせたログである。

目的

ページの目的を以下に記す。

  • AI Programmerの性能を簡単なプログラムで確認する
  • 結果のコードレビューをしながらプログラムを学ぶ

期間

2022年10月06日

開発に用いたもの

手順

以下の手順で実験を行った。

  1. 「How to solve FizzBuzz?」と入力して[コード生成]ボタンを押下した。
  2. インデントのないソースには適宜インデントを挿入した。
  3. 指示文をそのまま出力するプログラムが生成された場合、そのようなプログラムではなくなるまで再生成した。

結果

どの結果も数秒で出力された。

SQL

コード

処理

表「generate_series(1, 100)」から表「number」へ何らかの列を抜き出す。その後、何らかの列の数字のFizzBuzz問題の答えを表「number」中の何らかの列へ書き出して射影する。

備考

  • 抜き出す列と条件分岐する列を指定していない。
  • 条件分岐部分はすべての数字と文字を、文字に変換して使用している。
  • 1から100までを出力することをわかっているアピール部分が表名にある。

Python

コード

処理

任意の引数に対してFizzBuzz問題の答えを戻す関数。

備考

  • 引数を制限すれば、完璧にFizzBuzz問題に対応できる。
  • 引数の制限がない。

JavaScript

コード

処理

FizzBuzz問題の答えをコンソールに出力。

備考

  • 何も変数が返らないが、アロー関数を用いている。
  • 不具合が起こりにくいlet型を用いている。
  • 処理する値だけでなく型の一致も考えている。

HTML

コード

処理

プログラミングで行うFizzBuzz問題の解説記事。

備考

  • 1から100までという制限が解説されていない。
  • 15の倍数で「FizzBuzz」と出力するという明示的な説明がない。

C#

コード

処理

コンソールから1行取得した数字に対するFizzBuzzをコンソールに書き出す。

備考

  • 1行しか読んでいない。
  • 1つの数字しか処理していない。
  • 15の倍数の処理がない。

C++

コード

処理

FizzBuzz問題の解答。

備考

  • 完璧。

考察

文法がほぼ完璧で見た目は正しく見えるが、処理は誤っているものが多い。出力されたコードの確認は必須である。確認のときに調べるため、学習には良い材料だと考えられる。HTMLでは文章が作成されることから、文章生成のAIモデルがもとになっていると考えられる。

まとめ

  • FizzBuzz問題であっても、処理が誤っていることが多い。
  • 文法はほぼ完璧である。

次回

他の回

「AI Programmer 連載記事」でタグ付けを行っている。

広告

FizzBuzz問題から始められるPythonの本。

広告