それらの特定の合計の結果に基づいて変数の値を計算できるアルゴリズム

RgSW

これは重複した質問かもしれませんが、スタックオーバーフローでこれを見つけることができませんでした。

いくつかの変数を取ります。これらはすべて、何かの可能性を表しています。つまり、すべての変数の値は0から1(両方を含む)の間です。これらの値は不明です。ただし、これらの変数の一部またはすべてを含む方程式がいくつかあり、その結果がわかっています。

たとえば、変数を取るabcxyそれらの値はすべて、0から1(両方を含む)の間の未知の数です。私は次の方程式を持っています:

1: a + b + c = 1
2: a + b + x = 2
3: b + c + y = 2
4: a + x <= 1    ->    0 <= a + x <= 1
5: c + y <= 1    ->    0 <= c + y <= 1

これを解くと、次の結果が得られます。

2: a + x + b = 2
   (something between 0 and 1) + b = 2
   b = 2 - (something between 0 and 1)
   1 <= b <= 2
   b = 1 (since 0 <= b <= 1 applies too)

1: a + b + c = 1
   a + 1 + c = 1
   a + c = 0
   a = -c
   a = 0  (since 0 <= a <= 1 and 0 <= c <= 1 apply)
   c = 0

2: a + b + x = 2   |   3: b + c + y = 2
   0 + 1 + x = 2   |      1 + 0 + y = 2
   x = 1           |      y = 1

-> a = 0, b = 1, c = 0, x = 1 and y = 1

私はこれを紙で解決しました。私の実際の目的は、明らかにされていない各セルにそれぞれ変数を割り当てることによって、次の掃海艇の状況を証明することでしたx a b c y以来xyおよびb1であることが判明、彼らはフラグを立てることができます。

マインスイーパ2

私の一般的な目的は、この手法を使用して地雷除去ボードを解決することですが、他のソフトウェアでも使用できます。ただし、この手法を使用してコンピューターでマインスイーパボードを解決する場合、コンピューターは、任意の量の変数と任意の量の方程式を使用して、このような状況を解決するためのアルゴリズムを使用する必要があります。これを行う一般的なアルゴリズムはありますか?そして、もしあれば、そのアルゴリズムをどのように実装すればよいですか?

物事を明らかにするために

  • 方程式は、1つの変数またはいくつかの変数の合計であり、結果は限定的または一定であり、常に正です。
  • 変数は、0から1(両方を含む)の間の未知の値です。
  • アルゴリズムは、それぞれの変数名を持つ変数の量と、いくつかの変数を定義する方程式を取り込みます。
  • アルゴリズムは、できるだけ多くの値を計算しようとします。決定できなかった値は未定のままです。
Patrick87

一般に、N個の独立変数が変化する可能性のあるN次元のベクトル空間があります。それぞれの制約はベクトル空間の領域を定義し、そのようなすべての領域の共通部分が決定したい領域です。領域はすでに制約のコレクションによって記述されているため、実際には、その領域の最も単純な(最も複雑でない)記述を探しています。3つの可能性があります。1つは、この地域に解決策がないことです。第二に、この地域には有限数の解決策があるということです。第三に、この地域には無限に多くの解決策があるということです。

最初のステップは、もしあれば、方程式を連立方程式として扱い、連立方程式を解くためのアルゴリズムを使用して、方程式だけから可能な限り解くことです。他に何もないとしても、いくつかの変数を削除しておくと、次のステップで役立ちます。

1: a + b + c = 1
2: a + b + x = 2
3: b + c + y = 2

1: a = 1 - b - c
2: 1 - b - c + b + x = 2
3: b + c + y = 2

1: a = 1 - b - c
2: c = x - 1
3: b + x - 1 + y = 2

1: a = 1 - b - c
2: c = x - 1
3: b = 3 - x - y

1: a = y - 1
2: c = x - 1
3: b = 3 - x - y

これは私たちが行くことができる限りです。次に、不等式の完全なシステムに置き換えます。

A: 0 <= a <= 1
B: 0 <= b <= 1
C: 0 <= c <= 1
D: 0 <= x <= 1
E: 0 <= y <= 1
F: 0 <= a + x <= 1
G: 0 <= c + y <= 1

A: 0 <= y - 1 <= 1
B: 0 <= 3 - x - y <= 1
C: 0 <= x - 1 <= 1
D: 0 <= x <= 1
E: 0 <= y <= 1
F: 0 <= y - 1 + x <= 1
G: 0 <= x - 1 + y <= 1

A: 1 <= y <= 2
B: 3 >= x + y >= 2
C: 1 <= x <= 2
D: 0 <= x <= 1
E: 0 <= y <= 1
F: 1 <= y + x <= 2
G: 1 <= x + y <= 2

この時点で、各変数の制約を個別に探し(存在する場合)、それらの制約の共通部分を見つける必要があります。

A: 1 <= y <= 2 \
                > taken together, the only solution is y = 1
E: 0 <= y <= 1 /  this is the intersection of intervals [0,1] and [1,2]

C: 1 <= x <= 2 \
                > taken together, the only solution is x = 1
D: 0 <= x <= 1 /  this is the intersection of intervals [0,1] and [1,2]

B: 3 >= x + y >= 2 \  taken together, this means x + y = 2
F: 1 <= y + x <= 2  > this is the intersection of [1,2] and [2,3]
G: 1 <= x + y <= 2 /  note that G turns out to be redundant after subbing

解x = 1、y = 1は、不等式のシステムと一致しています。それが唯一のそのような解決策です。連立方程式を逆代入して、他の変数の値を取得できます。

1: a = y - 1
     = 1 - 1
     = 0
2: c = x - 1
     = 1 - 1
     = 0
3: b = 3 - x - y
     = 3 - 1 - 1
     = 1

したがって、解a = 0、b = 1、c = 0、x = 1、y = 1が機能し、唯一の解です。これらのステップのほとんどすべては、自動化できるものでなければなりません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アルゴリズムの時間計算量は、ループが実行される回数のみに基づいて計算されますか?

分類Dev

変数アルゴリズムに基づいて配列の結果を並べ替える-MYSQL&PHP

分類Dev

数値が他の2つの数値の乗算の合計で構成されているかどうかを判断するアルゴリズム

分類Dev

バケットの合計に基づいて数値のセットをバケット化するアルゴリズム

分類Dev

mysqlで2つの値の差を計算し、その結果に基づいてソートする

分類Dev

すべてのパス合計を見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

Postgres-別の列の合計の結果に基づいて合計を計算する

分類Dev

すべての組み合わせを見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

数値のすべての桁を合計するアルゴリズム

分類Dev

時間計算量に基づくこれら3つのアルゴリズムの違いは何ですか?

分類Dev

Swiftでは、2つの値の合計を2回計算する方が速いですか、それとも1回計算して結果を変数に格納する方が速いですか?

分類Dev

グーグルAPIで計算された距離に基づいてphp / mysqlの結果を注文する

分類Dev

stlアルゴリズムを使用して絶対値の合計を計算する

分類Dev

C ++年齢に基づいてチケットの価格を計算し、それらを合計する

分類Dev

乗算された数値のペアが数値の範囲の合計に等しいようにアルゴリズムを改善するにはどうすればよいですか?

分類Dev

2つのテーブルを結合し、個別の列に基づいてMysqlでそれらの列を合計する方法

分類Dev

他の列の値に基づいてデータフレームの値の合計を計算する

分類Dev

パンダ:異なる列のカテゴリに従って、複数の列の値をグループ化します。そして、そのカテゴリのグループ化に基づいて平均を計算します

分類Dev

rの基準に基づいて変数を計算する

分類Dev

線形方程式に基づいて値を計算するアルゴリズム

分類Dev

アルゴリズムの時間計算量について

分類Dev

すべてのことばの梯子を取得するためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

与えられた数の約数の数を計算するアルゴリズム

分類Dev

最小値に基づいて特定の行を計算する

分類Dev

PHP:このアルゴリズムでの大きな値の計算に関する問題

分類Dev

別の列に基づいて値を合計してから減算する

分類Dev

他の列の値に基づいて値を合計する(変数)

分類Dev

計算方法!4桁の整数を入力し、最初と最後の数字の合計を計算できるアルゴリズムを作成します。

分類Dev

アルゴリズムの問題:5つの配列のそれぞれから1つの数値を選択し、それらの合計が2018になるかどうかを確認しますか?

Related 関連記事

  1. 1

    アルゴリズムの時間計算量は、ループが実行される回数のみに基づいて計算されますか?

  2. 2

    変数アルゴリズムに基づいて配列の結果を並べ替える-MYSQL&PHP

  3. 3

    数値が他の2つの数値の乗算の合計で構成されているかどうかを判断するアルゴリズム

  4. 4

    バケットの合計に基づいて数値のセットをバケット化するアルゴリズム

  5. 5

    mysqlで2つの値の差を計算し、その結果に基づいてソートする

  6. 6

    すべてのパス合計を見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

  7. 7

    Postgres-別の列の合計の結果に基づいて合計を計算する

  8. 8

    すべての組み合わせを見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

  9. 9

    数値のすべての桁を合計するアルゴリズム

  10. 10

    時間計算量に基づくこれら3つのアルゴリズムの違いは何ですか?

  11. 11

    Swiftでは、2つの値の合計を2回計算する方が速いですか、それとも1回計算して結果を変数に格納する方が速いですか?

  12. 12

    グーグルAPIで計算された距離に基づいてphp / mysqlの結果を注文する

  13. 13

    stlアルゴリズムを使用して絶対値の合計を計算する

  14. 14

    C ++年齢に基づいてチケットの価格を計算し、それらを合計する

  15. 15

    乗算された数値のペアが数値の範囲の合計に等しいようにアルゴリズムを改善するにはどうすればよいですか?

  16. 16

    2つのテーブルを結合し、個別の列に基づいてMysqlでそれらの列を合計する方法

  17. 17

    他の列の値に基づいてデータフレームの値の合計を計算する

  18. 18

    パンダ:異なる列のカテゴリに従って、複数の列の値をグループ化します。そして、そのカテゴリのグループ化に基づいて平均を計算します

  19. 19

    rの基準に基づいて変数を計算する

  20. 20

    線形方程式に基づいて値を計算するアルゴリズム

  21. 21

    アルゴリズムの時間計算量について

  22. 22

    すべてのことばの梯子を取得するためのこのアルゴリズムの時間計算量はどれくらいですか?

  23. 23

    与えられた数の約数の数を計算するアルゴリズム

  24. 24

    最小値に基づいて特定の行を計算する

  25. 25

    PHP:このアルゴリズムでの大きな値の計算に関する問題

  26. 26

    別の列に基づいて値を合計してから減算する

  27. 27

    他の列の値に基づいて値を合計する(変数)

  28. 28

    計算方法!4桁の整数を入力し、最初と最後の数字の合計を計算できるアルゴリズムを作成します。

  29. 29

    アルゴリズムの問題:5つの配列のそれぞれから1つの数値を選択し、それらの合計が2018になるかどうかを確認しますか?

ホットタグ

アーカイブ