Das knackige Zahlenrätsel - Die Lösung (Schritt 2)

Susanne sagt: "Ich wusste, dass Peter die Lösung nicht kennt."

Dieser Hinweis ist zugegebenermaßen hinterlistig platziert. Es ist streng genommen der erste Hinweis, denn er sagt, dass Susanne schon vorher weiß, dass Peter die Lösung nicht kennen kann. Das bedeutet, dass Susanne eine Zahl sieht, die man nur so aus zwei Summanden zusammensetzen kann, dass für alle Paare der Summanden gilt, was zuvor gesagt wurde. Wenn Susanne zum Beispiel die Zahl 21 sieht, dann könnte die Lösung 2 + 19 sein. Das sind zwei Primzahlen und deswegen könnte Peter die Lösung nennen. Ergo kann Susanne nicht vorher schon wissen, dass Peter die Lösung nicht kennt, wenn sie 21 sieht. Die 21 scheidet also aus und mit ihr alle Paare von Lösungszahlen, die in der Summe 21 ergeben, also auch diejenigen, bei deren Produkt Peter die Lösung gar nicht kennen kann.

Nochmal deutlicher: die Information, dass Susanne weiß, dass Peter die Lösung nicht kennt, sagt uns viel mehr als die Information, dass Peter die Lösung nicht kennt. Wir dürfen aus der Menge der Lösungen alle Summen streichen, bei denen eine oder mehrere Kombinationen von Summanden existieren, mit denen man bei Kenntnis des Produktes die Lösung kennen würde.

Wir erzeugen eine Tabelle mit Summen und zählen dabei, wie viele Paare von Zahlen diese Summe ergeben und deren Produkt keine andere Kombination von Faktoren gestattet. Hä?

Nochmal anders: Peter kennt die Lösung nicht. Das heißt, alle Produkte, die nur durch eine Art zustande kommen können, scheiden aus.
Susanne weiß, dass Peter die Lösung nicht kennt, obwohl sie nur die Summe sieht und nicht das Produkt. Das bedeutet, ihre Summe erlaubt ausschließlich Zahlenpaare, deren Produkte nicht eindeutig sind. Deswegen fallen jetzt auf einmal alle diejenigen Zahlenpaare raus, deren Summe man auch mit einem anderen Zahlenpaar erzeugen kann, dessen Produkt eindeutig ist.

Wir haben vorhin eine Tabelle mit allen Produkten erzeugt, aus der man ablesen kann, ob ein Produkt eindeutig ist. Jetzt erzeugen wir daraus eine Tabelle mit allen Summen, die sich durch Addition der Faktoren dieser eindeutigen Produkte ergeben.

create table Summe (summe int, anzahl int)
insert into Summe
select Paar.summe, count(1)
from Paar
inner join Produkt on Produkt.produkt = Paar.produkt
where Produkt.anzahl = 1
group by Paar.summe
Jetzt dürfen wir alle Zahlenpaare löschen, deren Summe in dieser Tabelle steht.
delete Paar
where summe in (select summe from Summe)
Das hat die Lösungsmenge erfreulich reduziert: es gibt nur noch 145 Zeilen in der Tabelle Paar.
Zurück zum Rätsel - Zurück zum ersten Schritt - Weiter zu Schritt 3