質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

1回答

1068閲覧

制約充足問題の定義を知りたい

ryou10220417

総合スコア6

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2018/10/29 23:59

編集2018/10/30 00:28

ニコラが出版している「四角に切れ」というパズルゲームがあると思います。
それを制約充足問題として定義すると、
変数、領域、制約は何になるんでしょうか。

ルールなどはこちらのサイトを参照していただければ幸いです。
https://www.nikoli.co.jp/ja/puzzles/shikaku/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/10/30 00:05 編集

質門が意味不明です。まずはその四角に切れ、と言うゲームと制約充足問題というのを解説してください
y_waiwai

2018/10/30 00:17

それを質門を編集して追記してくれますか
guest

回答1

0

制約は、
「どの長方形にも数字が1つずつ入るようにします」と 「数字は、1マスの面積を1としたときに、その数字が入る長方形の面積がいくつになるかを表しています」

領域は、問題に示された盤面

変数は、どのような戦略・アルゴリズムで問題を解こうとするかに依存するでしょう。

例えば一つの四角を、
数字が書かれたマスの位置(x0,y0)、数字の値(a)、左上隅の位置(x1,y1)、右下の位置(x2,y2)の組で表す。(x0,y0,aは問題で与えられ、x1,y1,x2,y2は(x2-x1+1)*(y2-y1+1)=a, x1<=x0, x0<=x2,y2<=y0,y0<=y2の全て満たされる範囲で選択できる)
といった事が考えられます。
リンク先の問題では12個の数字がありますから、12個の四角のx0,y0,a,x1,y1,x2,y2が条件を充足したら正解という訳です。

リンク先の問題では、9,8,6の数字を含む四角形は、上記の条件によって決める事ができます。(箱詰め問題では、大きな箱から詰めてゆくというヒューリスティックがあります)

投稿2018/10/30 02:04

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryou10220417

2018/10/30 03:28

回答ありがとうございます。 制約充足問題として他にもナンバーリンクや数独などがありますが、四角に切れはその中でも比較的簡単に解く事が出来るのはなぜなんでしょうか。
coco_bauer

2018/10/30 04:37

数字9の四角の形は、1x9,3x3,9x1の3種類しかないので、9を含んで、他の数字を含まない四角形は容易に見つかる、というように制約が視覚的に分りやすい(数独のように、いろんな範囲に同じ数字を含まないことを探さなくて良い)からではないでしょうか。それと例題の盤面が比較的小さいから。盤面のサイズが100x100で、それを999個の四角に切るような問題だと、簡単ではないと思います。
ryou10220417

2018/10/31 03:18

四角に切れを何回も解いていったら、戦略などは見つかると思われますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問