1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

数独の問題作成を ChatGPT に依頼してみました

Last updated at Posted at 2023-02-07

概要

今、巷で噂の「ChatGPT」を利用して、数独 のPythonプログラムの作成依頼をすればどのような答えが返ってくるか試してみました

実行環境

macOS Ventura 13.0
python 3.8.12

マシンスペック

  • プロセッサ : 2.3 GHz 8コア Intel Core i9
  • メモリ : 32GB 2667MHz DDR4

ChatGPTへのログイン

以下のURLにアクセスします。アカウント登録後利用できます。
https://chat.openai.com/auth/login

ChatGPTへの問い合わせ

数独の問題を作成するPythonプログラムは?

ChatGPTからの返事

数独の問題を作成するPythonプログラムは様々な方法で作成することができますが、一般的なアルゴリズムには以下のようなものがあります:

数独テンプレートを作成し、そこから必要な数字を適当に消去する。
順番に数字を埋めていくアルゴリズムを作成する。
ランダムな数字を適当な位置に配置し、正解を求めるためのアルゴリズムで問題を解いていく。

具体的な例は以下のようなものがあります:

----------------------------------------------------------------
import random

def create_sudoku():
    board = [[0 for x in range(9)] for y in range(9)]
    for i in range(9):
        for j in range(9):
            board[i][j] = (i * 3 + i // 3 + j) % 9 + 1
    for i in range(9):
        for j in range(9):
            k = random.randint(0, 8 - j) + j
            board[i][j], board[i][k] = board[i][k], board[i][j]
            k = random.randint(0, 8 - i) + i
            board[i][j], board[k][j] = board[k][j], board[i][j]
    return board

sudoku = create_sudoku()
for row in sudoku:
    print(row)
----------------------------------------------------------------

このプログラムは、数独テンプレートを作成し、数字をランダムに配置することで数独の問題を作成します。

実行プログラム

なにも編集せずに、、、、、

Sudoku_charGPT.py
import random

def create_sudoku():
    board = [[0 for x in range(9)] for y in range(9)]
    for i in range(9):
        for j in range(9):
            board[i][j] = (i * 3 + i // 3 + j) % 9 + 1
    for i in range(9):
        for j in range(9):
            k = random.randint(0, 8 - j) + j
            board[i][j], board[i][k] = board[i][k], board[i][j]
            k = random.randint(0, 8 - i) + i
            board[i][j], board[k][j] = board[k][j], board[i][j]
    return board

sudoku = create_sudoku()
for row in sudoku:
    print(row)

プログラムの実行

プログラムを見て結果はわかっていましたが、とりあえず、実行してみました。

$ python Sudoku_chatGPT.py
[5, 5, 9, 9, 2, 7, 8, 2, 5]
[8, 6, 8, 9, 7, 4, 3, 4, 2]
[1, 1, 2, 6, 9, 5, 9, 7, 4]
[3, 4, 1, 2, 3, 3, 5, 1, 8]
[8, 9, 2, 6, 1, 4, 2, 3, 6]
[6, 5, 7, 2, 4, 2, 4, 1, 5]
[7, 6, 1, 5, 9, 7, 8, 3, 4]
[9, 7, 5, 8, 8, 9, 6, 3, 4]
[6, 8, 3, 6, 3, 7, 7, 1, 1]

まとめ

世の中あまくないですね、、、、、しかし、ChatGPTでエラーなしのPythonコードが帰ってきたのには驚きです! プログラミングに関する質問はスコープ(範囲)を明確にしてあげれば利用できそうな気がします。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?