Ich würde dir zu einer geometrischen Lösung raten, da sie einfach nachvollziehbar ist.
Zunächst solltest du zufällige x und y Koordinaten zu deinen Punkten generieren.
Dann kannst du die Distanz zwischen zwei Punkten wie folgt ausrechnen:
d = √((x
1 - x
2)² + (y
1 - y
2)²)
Es handelt sich hierbei um die Pythogoras Formel (a² + b² = c²):
Die Länge der Seite a ist hierbei die Differenz zwischen den beiden x-Werten deiner Punkte und die Länge der Seite b ist die Differenz zwischen den y-Werten.
Kurz gesagt, bei dir ist a = x
1 - x
2 und b = y
1 - y
2.
Zum Schluss kannst du die Punkte quadrieren, addieren und danach die Wurzel ziehen, dann hast du deinen Wert für c, was bei dir die Distanz zwischen den beiden Punkten ist.
Die Logik dahinter: Du konstruierst ein Dreieck anhand deiner beiden Punkte und kannst so die Distanz über die Ermittlung der dritten, längsten Seite deines Dreiecks ausrechnen.
Wenn du jetzt deine Schleife programmierst, kannst du noch folgende Optimierungen vornehmen:
- Wenn deine beiden Punkte gleich sind (beide Schleifenvariablen haben den selben Wert), dann ist die Distanz immer 0, das ist die Diagonale in deiner Tabelle.
- Du kannst die beiden Schleifenvariablen als Indizes vertauschen und schauen ob in deiner Tabelle bereits ein Wert vorhanden ist, wenn ja, dann brauchst du die Distanz nicht neu ausrechnen, sondern nur innerhalb der Tabelle kopieren (von A nach B ist die selbe Distanz wie von B nach A).
Ich hoffe ich konnte dir helfen.
Liebe Grüße.