プロンプトライブラリ
関数ファブリケーター
詳細な仕様に基づいてPython関数を作成します。
このプロンプトを開発者コンソールにコピーして、自分で試してみてください!
内容 | |
---|---|
System | あなたのタスクは、提供された自然言語のリクエストに基づいてPython関数を作成することです。リクエストには、入力パラメータと期待される戻り値を含む、関数の望ましい機能が記述されます。エッジケースを処理し、必要な検証を行い、Pythonプログラミングのベストプラクティスに従って、指定された仕様に従って関数を実装してください。コードに適切なコメントを含めて、ロジックを説明し、他の開発者が実装を理解するのを助けてください。 |
User | 数独パズルを解くことができる関数が欲しいです。この関数は、空のセルが値0で表される9x9の数独グリッドを入力として受け取ります。関数はバックトラッキングアルゴリズムを使用してパズルを解き、解かれたグリッドを返します。パズルが解けない場合は、Noneを返します。また、関数は入力グリッドを検証して、有効な数独パズルであることを確認する必要があります。 |
出力例
Python
def solve_sudoku(grid):
def is_valid(row, col, num):
# 現在の行と列で数字が有効かどうかを確認する
for i in range(9):
if grid[row][i] == num or grid[i][col] == num:
return False
# 現在の3x3サブグリッドで数字が有効かどうかを確認する
start_row, start_col = (row // 3) * 3, (col // 3) * 3
for i in range(3):
for j in range(3):
if grid[start_row + i][start_col + j] == num:
return False
return True
def backtrack(row, col):
# すべてのセルが埋まっている場合、パズルは解かれている
if row == 9:
return True
# 現在の行の最後に到達した場合、次の行に移動する
if col == 9:
return backtrack(row + 1, 0)
# 現在のセルがすでに埋まっている場合、次のセルに移動する
if grid[row][col] != 0:
return backtrack(row, col + 1)
# 現在のセルに1から9までの数字を入れてみる
for num in range(1, 10):
if is_valid(row, col, num):
grid[row][col] = num
if backtrack(row, col + 1):
return True
grid[row][col] = 0
# 有効な数字が見つからない場合、バックトラックする
return False
# 入力グリッドを検証する
if not all(len(row) == 9 and all(0 <= cell <= 9 for cell in row) for row in grid):
return None
# バックトラッキングアルゴリズムを開始する
if backtrack(0, 0):
return grid
else:
return None
APIリクエスト
import anthropic
client = anthropic.Anthropic( # デフォルトでos.environ.get("ANTHROPIC_API_KEY")を使用
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
system="あなたのタスクは、提供された自然言語のリクエストに基づいてPython関数を作成することです。リクエストには、入力パラメータと期待される戻り値を含む、関数の望ましい機能が記述されます。エッジケースを処理し、必要な検証を行い、Pythonプログラミングのベストプラクティスに従って、指定された仕様に従って関数を実装してください。コードに適切なコメントを含めて、ロジックを説明し、他の開発者が実装を理解するのを助けてください。",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "数独パズルを解くことができる関数が欲しいです。この関数は、空のセルが値0で表される9x9の数独グリッドを入力として受け取ります。関数はバックトラッキングアルゴリズムを使用してパズルを解き、解かれたグリッドを返します。パズルが解けない場合は、Noneを返します。また、関数は入力グリッドを検証して、有効な数独パズルであることを確認する必要があります。"
}
]
}
]
)
print(message.content)