Einführung
Angenommen, Sie haben ein Lineal mit Zahlen von 0 bis r-1 . Sie platzieren eine Ameise zwischen zwei der Zahlen und sie kriecht unregelmäßig auf dem Lineal. Das Lineal ist so schmal, dass die Ameise nicht von einer Position zur nächsten gehen kann, ohne auf allen dazwischen liegenden Zahlen zu laufen. Wenn die Ameise zum ersten Mal auf einer Zahl läuft, zeichnen Sie sie auf, und dies gibt Ihnen eine Permutation der r- Zahlen. Wir sagen, dass eine Permutation ärgerlich ist, wenn sie auf diese Weise von einer Ameise erzeugt werden kann. Alternativ ist eine Permutation p ärgerlich, wenn sich jeder Eintrag p [i] mit Ausnahme des ersten Eintrags innerhalb des Abstands 1 von einem vorhergehenden Eintrag befindet.
Beispiele
Die Länge-6-Permutation
4, 3, 5, 2, 1, 0
ist nervös, weil 3 in der Entfernung 1 von 4 liegt , 5 in der Entfernung 1 von 4 liegt , 2 in der Entfernung 1 von 3 liegt , 1 in der Entfernung 1 von 2 liegt und 0 in der Entfernung 1 von 1 liegt . Die Permutation
3, 2, 5, 4, 1, 0
ist nicht nervös, weil 5 nicht in der Entfernung 1 von 3 oder 2 liegt ; Die Ameise müsste 4 durchlaufen , um zu 5 zu gelangen .
Die Aufgabe
Geben Sie bei einer Permutation der Zahlen von 0 bis r-1 für 1 ≤ r ≤ 100 in einem beliebigen vernünftigen Format einen Wahrheitswert aus, wenn die Permutation ärgerlich ist, und einen falschen Wert, wenn nicht.
Testfälle
[0] -> True
[0, 1] -> True
[1, 0] -> True
[0, 1, 2] -> True
[0, 2, 1] -> False
[2, 1, 3, 0] -> True
[3, 1, 0, 2] -> False
[1, 2, 0, 3] -> True
[2, 3, 1, 4, 0] -> True
[2, 3, 0, 4, 1] -> False
[0, 5, 1, 3, 2, 4] -> False
[6, 5, 4, 7, 3, 8, 9, 2, 1, 0] -> True
[4, 3, 5, 6, 7, 2, 9, 1, 0, 8] -> False
[5, 2, 7, 9, 6, 8, 0, 4, 1, 3] -> False
[20, 13, 7, 0, 14, 16, 10, 24, 21, 1, 8, 23, 17, 18, 11, 2, 6, 22, 4, 5, 9, 12, 3, 15, 19] -> False
[34, 36, 99, 94, 77, 93, 31, 90, 21, 88, 30, 66, 92, 83, 42, 5, 86, 11, 15, 78, 40, 48, 22, 29, 95, 64, 97, 43, 14, 33, 69, 49, 50, 35, 74, 46, 26, 51, 75, 87, 23, 85, 41, 98, 82, 79, 59, 56, 37, 96, 45, 17, 32, 91, 62, 20, 4, 9, 2, 18, 27, 60, 63, 25, 61, 76, 1, 55, 16, 8, 6, 38, 54, 47, 73, 67, 53, 57, 7, 72, 84, 39, 52, 58, 0, 89, 12, 68, 70, 24, 80, 3, 44, 13, 28, 10, 71, 65, 81, 19] -> False
[47, 48, 46, 45, 44, 49, 43, 42, 41, 50, 40, 39, 38, 51, 37, 36, 52, 35, 34, 33, 32, 53, 54, 31, 30, 55, 56, 29, 28, 57, 58, 59, 60, 27, 26, 61, 25, 62, 63, 64, 65, 66, 67, 24, 23, 22, 21, 68, 69, 20, 19, 18, 17, 70, 71, 16, 15, 72, 73, 74, 75, 76, 14, 13, 12, 77, 11, 10, 9, 8, 78, 7, 79, 80, 6, 81, 5, 4, 3, 82, 2, 83, 84, 1, 85, 86, 87, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] -> True
Tolle Tatsache: Für r ≥ 1 gibt es genau 2 r-1- Ameisenpermutationen der Länge r .