Das hammerharte Zahlenrätsel - Die Lösung (Schritt 5)

Daniel sagt: "Eine Zahl ist wahrscheinlich."

Das ist ein Hinweis ganz anderer Art als die bisherigen, aber er gestattet ebenfalls eine hilfreiche Schlussfolgerung: was immer Daniels Differenz ist, in der Menge der Zahlenpaare, die er damit bilden könnte, ist eine Zahl häufiger vertreten als alle anderen.
Es gibt eine viel offensichtlichere Schlussfolgerung: Daniels Differenz ist in der Tabelle der Faktoren mehrfach verteten, denn sonst könnte er die Lösung jetzt ebenfalls nennen.

Generieren wir uns mal wieder eine Hilfstabelle nach bekanntem Muster.

create table Differenz (differenz int, anzahl int)
insert into Differenz
select differenz, count(1)
from Paar
group by differenz
Was wir brauchen, ist eine Gruppe von Zahlenpaaren mit gleicher Differenz, bei denen eine der Zahlen häufiger vertreten ist als alle anderen. Das erlaubt es Daniel, festzustellen, dass diese Zahl wahrscheinlicher ist. Wir können also aus der Zahlenpaarliste diejenigen entfernen, deren Differenz nur einmal vorkommt.

Wir können uns die Liste sogar noch ein Stückchen vereinfachen, indem wir uns gleich noch den nächsten Hinweis ansehen:

Peter sagt: "Die wahrscheinliche Zahl ist falsch."

Das bedeutet, dass wir nach einer Gruppe von mindestens dreimal der gleichen Differenz suchen müssen, denn wenn wir die Lösungen eliminieren, bei denen die wahrscheinliche Zahl enthalten ist, dann muss immer noch eine Lösung übrig bleiben.

Wir löschen nun aus der Menge der Zahlenpaare also alle Zeilen, deren Differenzen weniger als dreimal vorkommen.

delete Paar
where differenz in (select differenz
	from Differenz
	where anzahl < 3)
Was wir jetzt haben, sind überschaubare 6 Zahlenpaare. Natürlich könnte man weiter rumprogrammieren, aber den letzten Schritt schaffen wir durch Augenschein:
select * from Paar order by differenz, summe
X Y produkt summe differenz
23 32 736 55 9
32 41 1312 73 9
64 73 4672 137 9
16 37 592 53 21
32 53 1696 85 21
43 64 2752 107 21

Nicht nur Daniel, auch wir kennen jetzt die Lösung. Die 32 taucht in zwei Zahlenpaaren auf, die die gleiche Differenz 9 ergeben. Dass die 32 außerdem noch einmal bei der Differenz 21 vertreten ist, ist Zufall. Hätte Daniel die 21 als Differenz, dann würde er die 32 nur einmal sehen und hätte keinen Hinweis auf die Lösung abgegeben.

Richtig ist nur die grün markierte Lösung 64 und 73.


Zurück zum Rätsel - Zurück zu Schritt 4