kürzester Weg eines Springer zu einem bestimmten Feld?

...komplette Frage anzeigen

5 Antworten

Kennt ihr bestimmte Regeln die mir die Rechnerrei vereinfachen?

Alles ausprobieren; aber eine Maschine kann das schneller. Hier siehst Du, wie viele Züge Du vom Feld a8 auf die anderen Felder brauchst:

 0  3  2  3  2  3  4  5
3 4/2 1 2 3 4 3 4
2 1 4 3 2 3 4 5
3 2 3 2 3 4 3 4
2 3 2 3 4 3 4 5
3 4 3 4 3 4 5 4
4 3 4 3 4 5 4 5
5 4 5 4 5 4 5 6

Wenn man auch über Felder außerhalb des Brettes ziehen darf, verkürzt sich nur der Weg a8-b7 von 4 auf 2 Züge. Alle anderen Wege bleiben gleich.

Daher kannst Du diese Matrix für beliebige Startfelder verwenden: Lege die 0 auf Start und spiegle die Zahlen an der ersten Zeile und Spalte. Der Sonderfall "4 Züge" taucht nur bei a8⇔b7 (und in den anderen Ecken) auf. Sonst geht ein Diagonalzug immer mit 2 Zügen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ralphdieter
26.06.2016, 11:41

Danke fürs Sternle!

1
Kommentar von wolfgang1956
28.06.2016, 06:00

Wer und wozu braucht man diese völlig unnütze Matrize in der Praxis? Das ist nur Ballast für wichtigere Informationen, die man in seinem Hirn speichern könnte.

Wenn man auch über Felder außerhalb des Brettes ziehen darf, verkürzt sich nur der Weg a8-b7 von 4 auf 2 Züge.

Das Brett hat aber nun einmal 8 Reihen mal 8 Spalten. Daher ist diese Anmerkung unsinnig.

0

Für mich sieht das nach einem graphtheoretischen Problem aus. Ich bin mir nicht sicher ob es eine analytische Lösung gibt, aber wenn Du programmieren kannst, kannst Du die Lösung ziemlich einfach rechnerisch finden. Das geht folgendermaßen:

Zunächst einmal erstellst Du eine quadratische Matrix wobei die Anzahl der Zeilen und Spalten gleich der Anzahl an Feldern auf dem Schachbrett ist (also 64 Zeilen und 64 Spalten). Jeder Zeile und jeder Spalte ordnest Du ein Feld zu. Also 

1. Zeile = A1, 2. Zeile = A2, ..., 8. Zeile = A8, 9. Zeile = B1, ..., 64. Zeile = H8

Mit den Spalten machst Du es genau so.

Dann prüfst Du für jedes Feld welche anderen Felder der Springer in einem Zug erreichen kann. Wenn der Springer aus dem betrachteten Feld Y ein anderes Feld X erreichen kann, dann schreibst Du in das entsprechende Element X/Y der Matrix eine 1. Wenn der Springer das Feld X nicht in einem Zug aus Feld Y erreichen kann schreibst Du in das Element X/Y eine 0.

Beispiel: Der Springer sei in Feld A1 (das ist laut Matrix Feld Nr. 1). Er kann von dort nach B3 springen (das ist laut Matrix Feld Nr. 11). Du schreibst also eine 1 in das Element der 1. Spalte und der 11. Zeile. Der Springer kann von Feld A1 Feld C1 (das 17. Feld laut Matrix) nicht erreichen. Du schreibst also in das Element der 1. Spalte und 17. Zeile eine 0.


Wenn Du diese Matrix mit sich selbst multipizierst, kannst Du sehen welche Felder der Springer in zwei Zügen von einem bestimmten Ausgangsfeld erreichen kann. Für das Ausgangsfeld Y steht diese Information in der Spalte Y. Alle Einträge, die nicht 0 sind zeigen erreichbare Felder an. 

Zum Beispiel kann der Springer in zwei Zügen von A1 ( 1. Spalte) nach C5 (21. Zeile) gelangen. Also wird in dem Matrixprodukt das Element der 1. Spalte und 21. Zeile nicht Null sein.


Wenn Du die Matrix hoch N nimmst kannst Du auf genau die gleiche Weise ablesen welche Felder der Springer in N Zügen erreichen kann.


Um herauszufinden wie viele Züge der Springer mindestens von einem Feld zu einem anderen braucht mußt Du einfach die Matrix immer weiter mit sich selbst multiplizieren bis das entsprechende Element nicht Null ist. Die Anzahl der Multiplikationen + 1 ist dann die Anzahl der Züge.


Wenn ein Feld auf dem Schachbrett blockiert ist kannst Du die entsprechende Spalte und Zeile vollkommen mit Nullen füllen. Die Rechnung funktoniert dann trotzdem ganz genau so wie oben.

Antwort bewerten Vielen Dank für Deine Bewertung

Also ich hätte nen eher einfachen Tipp wenn man von einem Feld zum anderen möchte kann man sich einfach merken gleiche farbe=gerade Anzahl an Zügen
Ungleiche farbe=ungerade Anzahl an Zügen
Außerdem kann man sich merken das wenn das Feld wo man hinmöchte horizontal oder vertikal daneben liegt braucht man immer 3 Schritte und wenn es auf der diagonale das nächste ist braucht man 2 Schritte wenn es das übernächste ist braucht man 4 Schritte

So kann man meistens schätzen wie viele Felder es sind außerdem bekommt man mit der Zeit eh ein Gefühl für "den kürzesten Weg"

Antwort bewerten Vielen Dank für Deine Bewertung

Wer keine Probleme hat, macht sich welche … :-)

Wenn man dieses Problem rein auf den Springer bezieht, kann es schon kompliziert werden. In der praktischen Partie sieht das völlig anders aus. Dort kommt es eher darauf an, sowohl strategische als auch taktische Überlegungen der gegebenen Stellung in die Praxis umzusetzen.

Als Praktiker weiss man dann, dass der Springer relativ viele Züge braucht, wenn zwischen dem Gaul und dem König waagrecht wie senkrecht zwei Leerfelder sind und auf den Diagonalen ein Leerfeld ist. Für die waagrechte bzw. senkrechte Distanz gelten dann noch die Nebenbedingungen, dass der Gaul sich nicht auf ein Feld bewegen darf, das diagonal benachbart zu König ist, weil er dort geschlagen wird; ansonsten könnte er in zwei Zügen Schach bieten.

Natürlich kann man auch die Angelegenheit „mathematisch“ angehen und tolle Matrizen aufstellen. Nur haben diese Überlegungen keinen „praktischen Nährwert“; d.h. die Frage wäre: was lässt sich mit diesem unnützen Wissen anfangen?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ralphdieter
28.06.2016, 13:22

Nur haben diese Überlegungen keinen „praktischen Nährwert“

Und welchen praktischen Nutzen hat es, Figuren solange auf einem Brett herumzuschieben, bis eine davon umfällt?

Andere wiederum schlagen solange mit einem Stock auf einen Ball ein, bis er in ein Loch fällt.

Als Mathematiker reicht mir die Antwort: "Weil's Spaß macht!"

1

Die geometrische Ursprungsüberlegung verbunden mit dem taktischen Verständnis ermöglicht die Überlegung einer "Zeitunterteilung" des Metaspiels, in welchem der Springer im "Endgame" für eine ungünstige Position bestraft werden muss, da er das frühe Spiel dominiert.

Trotzdem eine interessante Überlegung.

Grüße :)
Sam

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?