Wie wir in dieser Frage gesehen haben, können komplexe logische Aussagen in Form von einfachen Verknüpfungen von verallgemeinerten Minesweeper ausgedrückt werden. Generalized Minesweeper hat jedoch immer noch Redundanzen.
Um diese Redundanzen zu vermeiden, definieren wir ein neues Spiel namens "Generalized-1 Minesweeper".
Generalized-1 Minesweeper ist eine Version von Minesweeper, die auf einem beliebigen Graphen gespielt wird. Der Graph hat zwei Arten von Eckpunkten, einen "Indikator" oder einen "Wert". Ein Wert kann entweder ein oder aus sein (eine Mine oder ein Blindgänger), sein Status ist dem Spieler jedoch unbekannt. Ein Indikator zeigt an, dass genau eine der benachbarten Zellen eingeschaltet ist (eine Mine). Indikatoren gelten selbst nicht als Minen.
Das folgende Board für Generalized Minesweeper zeigt uns beispielsweise, dass die Zellen A und B entweder beide Minen sind oder keine von ihnen Minen sind.
(In der Grafik sind die Anzeigen grau markiert, während die Werte weiß sind.)
Anders als bei normalen Minensuchbooten, bei denen Sie auf Werte klicken, die deaktiviert sind, um Indikatoren anzuzeigen, gibt es bei Generalized Minesweeper keine solche Mechanik. Ein Spieler bestimmt einfach, für welche Zustände des Graphen seine Indikatoren erfüllt werden können.
Dein Ziel ist es, einen 2
Generalized-1 Minesweeper zu machen. In Generalized-1 Minesweeper erstellen Sie eine Struktur, bei der es 8 bestimmte Zellen gibt, für die in allen möglichen Wertekonfigurationen genau zwei Zellen vorhanden sind. Dies bedeutet, dass es sich genauso verhält wie 2
bei herkömmlichen Minensuchbooten. Wenn Sie Ihre Lösung schreiben, sollten Sie keine spezifischen Werte für Wertezellen berücksichtigen. (In Beantwortung der Frage von H.PWiz ist es zulässig, dass einige Wertezellen vom Staat ableitbar sind.)
Wertung
Ihre Antworten werden anhand der Anzahl der Eckpunkte im endgültigen Diagramm minus 8 (für die 8 Eingaben) bewertet, wobei eine niedrigere Punktzahl besser ist. Wenn zwei Antworten mit dieser Metrik übereinstimmen, ist der Gleichstand die Anzahl der Kanten.
quelle
Antworten:
42 Ecken, 56 Kanten
Jede Variable ist ein Wertscheitelpunkt, und jedes Feld ist ein Indikatorscheitelpunkt mit Kanten zu den darin enthaltenen Variablen. Die Eingänge sind x 1 , ..., x 8 . Hier ist zum Beispiel eine Lösung mit Minen bei x 3 und x 5 , wobei Minen grün hervorgehoben sind.
Die horizontalen Zwänge stellen sicher, dass genau eines der A und genau eines der A ist b eine Mine hat. In diesen beiden Spalten enthält r keine Mine, in den anderen sechs Spalten jedoch. (Beachten Sie, dass a und b nicht beide eine Mine in derselben Spalte haben können.) Jeder Eingang x befindet sich gegenüber dem r in seiner Spalte, sodass genau zwei Eingänge Minen haben, wie gewünscht.
Zum
k
Eingaben werden5k+2
Scheitelpunkte (3k
Wert und2k+2
Indikator) und7k
Kanten verwendet. Hierk=8
gibt Eingänge 42 Ecken und Kanten 56.quelle
50 Ecken, 89 Kanten
Basierend auf dem Logikgatter aus der Antwort von H.PWiz.
Jedes
*
ist eingeschaltet, wenn die beiden entsprechenden Eingänge eingeschaltet sind. Um den Fall einer einzigen Eingabe handhaben , verwenden wir die Zwischenwertea=A&!B
usw. anschließen alle drei Wertea
,b
undA&B
an den Eingang eines sekundären Ebene von Gates gibt uns einen effektiven EingangA|B
(das spart Eckpunkte über!(!A&!B)
):Diese
*
s sind eingeschaltet, wenn zwei ihrer Eingänge (entsprechend vier der ursprünglichen Eingänge) eingeschaltet sind, mit Ausnahme der oben bereits behandelten Paare. In der Zwischenzeit können wir die#*#
Knoten mit einem letzten Tor verbinden. Wir haben daher folgende Ergebnisse:Diese decken alle 28 Fälle von zwei Eingängen ab. Es bleibt dann ein letzter Indikator mit diesen sieben Werten zu verbinden. Wenn weniger als zwei Eingänge eingeschaltet sind, ist keiner dieser Eingänge eingeschaltet, sodass die Anzeige ausgeschaltet ist. Wenn mehr als zwei Eingänge eingeschaltet sind, sind mehrere dieser Eingänge eingeschaltet und die Anzeige ist ausgeschaltet.
quelle
ACE
,BDF
,ADG
...(a&b)+((a|b)&(c|d))+(c&d)+((a|b|c|d)&(e|f|g|h))+(e&f)+((e|f)&(g|h))+(g&h)==1
, sieht das für dich richtig aus?197 Eckpunkte, 308 Kanten
Ich habe mir diese Antwort gestern Abend ausgedacht, sie aber nicht veröffentlicht, weil sie so hoch war. Da schlägt es jedoch die andere Antwort um ein Vielfaches übertrifft, sollte ich es dennoch posten.
Ich verwende die folgenden Einstellungen für alle 28 Wertepaare in Zellen
ABCDEFGH
?
Stellt eine Wertezelle dar, die nicht inABCDEFGH
. Wenn hier?*
ist ON ,A
undB
sind beide auf. AnsonstenA
undB
in jeder anderen Konfiguration sein könnte.Ich verbinde alle 28
?*
s mit einer Indikatorzelle. Dies bedeutet, dass nur ein PaarABCDEFGH
zwei EIN hat . Welches ist ausreichend , dass genau zwei meiner Ausgangszellen zu erzwingen wird ONquelle
?
s einem der 4 Zustände von entsprichtA B
.354 Knoten, 428 Kanten
Nur um zu beweisen, dass es möglich ist. Ich werde dies später mit einigem Zwischenspeichern verbessern.
(hoffentlich kein Codefehler)
Ich versuchte , ein Mathematica - Programm zu schreiben hier Programm Gültigkeit zu überprüfen, aber es funktioniert nicht wahrscheinlich funktionieren , weil es zu viele Variablen.
Das Ergebnis wurde von einem Computerprogramm generiert: Probieren Sie es online aus!
Ich benutze ein Tor, das so aussieht:
wo
(#)
sind 1-Indikatoren,(a)
..(f)
sind Werte.Dann,
Auch dieses Tor
gibt
. Verwenden Sie diese beiden Arten von Toren, mit denen Sie beliebige Ausdrücke erstellen können.
Natürlich ist dies die Behauptung, dass
(a)
dies wahr sein muss:quelle
81 Knoten, 108 Kanten
Mit 13 Knoten und 14 Kanten erstellen wir das folgende Adder-Gate (C (arry) = X UND Y, S (um) = X XOR Y):
Addiere mit vier Addierern M1, M2, M3, M4 A + B, C + D, E + F, G + H mit dem resultierenden Übertrag C1, C2, C3, C4 und der Summe S1, S2, S3. S4.
Verwenden Sie zwei Addierer M5, M6, um S1 + S2, S3 + S4 mit dem resultierenden Übertrag C5, C6 und der Summe S5, S6 zu addieren.
Füge mit einem Adder M7 S5 + S6 hinzu, um C7 und S7 zu erhalten.
Verbinden Sie nun alle Überträge mit einem einzelnen Anzeigeknoten wie dem folgenden:
und erzwinge, dass S7 (das Modulo 2 der Summe von 8 Werten) durch diese Schaltung 0 ist:
Ich behaupte, dass diese Schaltung genau zwei Werte zwingt,
ABCDEFGH
EIN zu sein, da es nur eine gerade Zahl sein kann (da S7 0 ist) und es nicht mehr als 3 EIN-Werte geben kann (da nur einer von C1-C7 EIN ist).quelle