2017-10-23 4 views
-2

Wir haben einen Pfad auf der X-Achse von 1 bis N. Es gibt 2 Punkte nämlich Quelle, S und Ziel, D auf dem Pfad. Ausgehend von der Quelle S dürfen wir nur 2 Züge machen. Wir können entweder U Schritte vorwärts springen oder L Schritte rückwärts springen. Wenn wir uns an einer Position p befinden, können wir entweder in einem einzigen Schritt zu p + U oder p-L gehen, vorausgesetzt, sie bleiben im [1, N] -Bereich. Wie viele Schritte sind erforderlich, um das Ziel D von S aus zu erreichen? Wir sind nicht über die Grenzen erlaubt 1 und N zu erreichenMinimale Schritte von Quelle zu Ziel

+3

Und ... Ihre Frage ist? – vish4071

+1

Sie müssen das Problem wirklich besser definieren. Wie geschrieben, macht es wenig Sinn. Finde einfach die Richtung von S nach D und nimm so viele Schritte in die richtige Richtung wie nötig. Irgendwie denke ich, es gibt mehr auf die Frage, aber deine Beschreibung sagt nicht. –

+0

Vielleicht möchten Sie einen optimalen Algorithmus, der in S beginnt, aber nicht weiß, was D ist. Stattdessen muss es versuchen. Nur wenn es D erreicht, wird der Algorithmus es wissen. D könnte kleiner oder größer als S sein. Wenn das deine Frage ist, hättest du es so erklären sollen, aber dann wurde das schon mal gefragt. Siehe [Parkplatzsuchalgorithmus] (https://stackoverflow.com/questions/37422823/parking-lot-search-alg). – trincot

Antwort

0

wir D Also müssen machen - S Schritte und wollen die minimale x+y:

D - S = x * U - y * L 

y = (Ux + S-D)/L 

Das ist Mathematik. So können wir Symmetrie im Problem ausnutzen und D> S (falls gewünscht), U> 0, L> 0 annehmen.

Um genau D zu treffen, muss Ux+S-D % L 0 sein (% ist der Modulooperator).

Entweder clevere Mathematik oder Schleife über x.

Ich hoffe, dass Sie damit beginnen.


Da mir bewusst ist, dass je nach Mathe behandelt die Klugheit variieren kann. Wenn sie gcd und Modulo behandelt:

Let g = gcd(U, L) 

dann gibt es keine Lösung, wenn (D-S) % g != 0. Zum Beispiel können Sie nicht für 3 bis 6 mit L 2 und U 4 erreichen.

Verwandte Themen