Das Happy-End-Problem (eigentlich ein Theorem) besagt das
Jede Menge von fünf Punkten in der Ebene an allgemeiner Position hat eine Teilmenge von vier Punkten, die die Eckpunkte eines konvexen Vierecks bilden.
Das Problem wurde von Paul Erdős so benannt, als sich die beiden Mathematiker Ester Klein und George Szekeres verlobten und heirateten.
Klarstellungen:
- Allgemeine Position bedeutet hier, dass keine drei Punkte kollinear sind.
Das von den vier Eckpunkten gebildete Viereck wird unabhängig von der Reihenfolge der Punkte immer als nicht schneidend betrachtet. Zum Beispiel, da die vier Punkte
[1 1]
,[1 2]
,[2 1]
,[2 2]
ist das beabsichtigte Viereck der Platz, nicht die Fliege:Ein sich nicht schneidendes Viereck ist konvex, wenn kein Innenwinkel 180 Grad überschreitet. oder gleichwertig, wenn beide Diagonalen im Viereck liegen.
Die Herausforderung
Bei 5 Punkten mit positiven Ganzzahlkoordinaten werden 4 Punkte ausgegeben, die ein konvexes Viereck bilden.
Regeln
Wenn es mehrere Lösungen gibt (dh mehrere Sätze mit 4 Punkten), können Sie durchgehend eine oder alle ausgeben.
Eingabe- und Ausgabeformate sind wie gewohnt flexibel (Arrays, Listen, Listenlisten, Zeichenfolgen mit angemessenen Trennzeichen usw.).
Code Golf, gewinnt die wenigsten Bytes.
Testfälle
Eingang:
[6 8] [1 10] [6 6] [5 9] [8 10]
Es gibt nur eine mögliche Ausgabe:
[6 8] [1 10] [6 6] [5 9]
Eingang:
[3 8] [7 5] [6 9] [7 8] [5 1]
Es gibt fünf Lösungen:
[3 8] [7 5] [6 9] [7 8] [3 8] [7 5] [6 9] [5 1] [3 8] [7 5] [7 8] [5 1] [3 8] [6 9] [7 8] [5 1] [7 5] [6 9] [7 8] [5 1]
Eingang:
[4 8] [1 9] [9 9] [10 2] [1 6]
Es gibt drei Lösungen:
[4 8] [1 9] [10 2] [1 6] [4 8] [9 9] [10 2] [1 6] [1 9] [9 9] [10 2] [1 6]
Zur Veranschaulichung sind hier die drei Lösungen für diesen Fall: