ForHosting KIT · 開発者向けツール

数独盤面の合法性を確認:行・列・3×3ブロックを検査

数独の盤面は一見正しく見えても、すでに矛盾があり、その後の解答作業が無駄になることがあります。この検証ツールは、途中まで数字が入った9x9盤面を解くことなく確認します。入力済みの各マスについて、行・列・3x3ブロックの一意性ルールに違反していないかを調べ、合法かどうかと、重複した数字の正確な位置を返します。空欄は比較対象にならないため、出題時の盤面、解答途中の状態、ほぼ完成した盤面のいずれにもご利用いただけます。

● Beta無料・ブラウザ内で実行
ご利用方法 ウェブAPIメールTelegramアプリ 近日

部分的な盤面を確実な形式で入力します

9行を入力し、各行には必ず9マスを含めてください。数字が入っているマスには1から9を使用し、空欄にはピリオドまたは0を使用します。<code>53..7....</code>のように詰めた行はプレーンテキストから問題をコピーするときに便利です。読みやすくするため、マスの間に空白やカンマを入れることもできます。検証時にはこれらの区切りを取り除いてからマス数を数えますが、ほかの記号の意味を推測することはありません。この厳密な区別により、形式が壊れた入力と、形式は正しいものの数独ルールに反する盤面を分けて扱えます。前者は81マスを確実に特定できず、後者は正しい形を持ちながら一意性ルールのいずれかに違反しています。行数の過不足、行内のマス数の誤り、未対応文字がある場合は入力エラーになります。解けること、ヒントが対称であること、ヒント数が十分であることは前提にしません。入力は現在の盤面だけを表します。

行・列・ブロックの競合結果を読み取ります

標準的な3種類の局所ルールをそれぞれ独立して確認します。入力済みの同じ数字は、横の行、縦の列、3x3ブロックの各範囲に2回以上置けません。空欄は比較から除外されます。すべての数字が3条件を満たす場合、<code>valid</code>はtrueとなり、違反一覧は空です。重複がある場合、各違反には種類、1から始まる範囲番号、重複値、その範囲内で同じ値を持つ全マスが含まれます。行と列の座標も、通常の数独の表し方に合わせて1から始まります。同じ2マスが複数の報告に現れる場合があります。たとえば同じ行かつ左上ブロックに5が2個あれば、両方の制約に違反するため、2件とも示します。出力順は常に一定で、行、列、ブロックの順です。各範囲内では1から9の数字順になります。この決定的な順序により、結果のテスト、比較、保存、表示を安定して行えます。

数独の作業工程で適切に活用します

合法性の検証は限定的な診断であり、問題を解く機能でも、良問であることを証明する機能でもありません。trueという結果が示すのは、現在の数字が同じ行・列・ブロック内の別の入力済み数字と重複していないことだけです。より深い矛盾によって完成できない場合、複数の解がある場合、公開に適さないヒント配置である場合は残ります。そのため、早い段階の安全確認として特に役立ちます。問題編集画面では変更のたびに呼び出し、直ちに生じた誤りを示せます。データ取り込み処理では、破損した盤面や転記ミスを、高コストなソルバーへ送る前に除外できます。学習アプリでは解答を明かさず、学習者の現在の入力だけを確認できます。アルゴリズムは固定された81マスだけを走査し、ネットワーク通信を行わないため、高速かつ再現可能です。ブラウザー版は対話的に利用でき、自動処理では同じ盤面を1リクエスト$0.002でAPIへ送信できます。形式エラーと、正しい形式で<code>valid</code>がfalseの盤面は区別して扱ってください。

転記ミスを早期に発見

コピーした盤面を保存したりソルバーへ渡したりする前に、重複したヒントがないか確認します。

答えを見せずに適切な案内

問題の解答を公開せず、直ちに競合している行・列・ブロックを特定します。

取り込んだ問題データを検証

形式不正の盤面は入力エラーとして拒否し、形式は正しくても違法な盤面は予測可能な構造で報告します。

合法という結果なら、その数独は解けますか?

いいえ。現在の入力済みマスが行・列・3x3ブロックの一意性に違反していないことだけを示します。解の存在や一意性は検査しません。

空欄はどのように入力しますか?

ピリオドまたは数字の0をご使用ください。どちらも空欄として扱われ、重複検査では無視されます。

マスを空白やカンマで区切れますか?

はい。空白、カンマ、縦線を見やすさのための区切りとして使用できます。区切りを除いた各行は必ず9マスにしてください。

同じ2マスが2件の違反に表示されるのはなぜですか?

同じ行と同じ3x3ブロックに属する場合など、1組の重複が複数のルールを同時に破るためです。影響する範囲を個別に報告します。

APIリクエストの料金はいくらですか?

APIは1リクエストあたり$0.002です。対話型のブラウザー版はローカルで無料実行できます。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/game/sudoku-validate-board

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/game/sudoku-validate-board \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"board":"53..7....\n6..195...\n.98....6.\n8...6...3\n4..8.3..1\n7...2...6\n.6....28.\n...419..5\n....8..79"}'
{
  "board": "53..7....\n6..195...\n.98....6.\n8...6...3\n4..8.3..1\n7...2...6\n.6....28.\n...419..5\n....8..79"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "game.sudoku_validate_board",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

KITの完全なドキュメントを見る →