広域システム概論II「パズルをソルバーで解く」

担当 田中哲朗


このページは2018/11/27(火)3限の広域システム概論IIで田中が担当した 「パズルをソルバーで解く」のサポートページです.

小テストに関する補足

(注) 小テストの問題2-2のz3のプログラムで,
solve(0 <= x0, x0 <= 1, 0 <= x1, x1 <= 1, p3, Or(p1, p2), Or(Not(p1), Not(p2)))
となっていたのですが,これは,
solve(0 <= x0, x0 <= 1, 0 <= x1, x1 <= 1, Not(p3), Or(p1, p2), Or(Not(p1), Not(p2)))
の誤りでした.

これに気がついて,穴埋めを

3 * x0 + 3 * x1 > 2 
と書いた人も,
3 * x0 + 3 * x1<= 2 
と書いた人もどちらも正解とします.

また,

3 * x0 + 3 * x1<= 2 
と書いたプログラムを実行した結果の(1/6, 1/2)を問題2-1で解答した人も正解として扱います.

スライド


リンク


Notebookファイル

Google Colaboratoryを使って,クラウド実行環境でPythonプログラムを実行できます.

z3を用いた3人の賢者問題の求解

数学セミナー「エレガントな解答をもとむ」で出題者の用意した解答の間違いの発見 z3を用いた3人の賢者問題の求解

他の問題

数学セミナー2017年9月号の「エレガントな解答をもとむ」でピーター・フランクルさんによる以下の問題が出された.

1+5+6=12と2+3+7=12は,同じ数(12)を,全く異なる3つずつの整数の和として表す式の組合せです.左辺に登場する整数 1,5,6,2,3,7には重複がありません.
右辺の数を42にして,同様な式いくつかの組合せ

a + b + c = 42
d + c + f = 42
g + h + i = 42
...
を作ります.式の個数がなるべく多い組合せを作ってください! 左辺には同じ数は二回以上登場できません.

この問題はz3を使って「エレガント」ではなく力任せで解ける.