Wprowadzenie
Prawie wszyscy znają problem Traveling Salesman Problem (TSP). Zadanie polega na N
znalezieniu, na podstawie listy miast, minimalnego cyklu hamiltonowskiego , czyli najkrótszej ścieżki, która odwiedza każde miasto i zatacza koło. Nie o to chodzi w tym wyzwaniu. Wyzwanie polega na wdrożeniu rozwiązania Chucka Norrisa w TSP:
Chuck Norris rozwiązał problem Podróżującego Sprzedawcy na
O(1)
czas: rozbić sprzedawcę na N części; kopnij każdy kawałek do innego miasta.
Wyzwanie
Aby rozwiązać TSP w ten sposób, potrzebujemy wystarczająco trwałego sprzedawcy, który nie będzie unikał frywolności, takich jak rozczłonkowanie; wiele miast do odwiedzenia; zestaw produktów do sprzedaży; konkretna metoda rozczłonkowania; oraz obliczenie punktacji.
Specyfikacja
- Miasta
N
to liczba odwiedzin, które odwiedzi nasz sprzedawca
- Sprzedawca
- Główny program lub funkcja
- Napisane w języku
X
- O długości mod
N
równej0
- Produkty
- Amputacja
- Krojenie sprzedawcy na
N
ciągłe kawałki o równej długości - Każdy utwór powinien być prawidłową funkcją lub programem w języku
X
- Krojenie sprzedawcy na
- Wynik
- Po wykonaniu Sprzedawca powinien wysyłać,
Chuck Norris
a pokrojone kawałki powinny dawać odrębny produkt - Dopuszczalna jest tylko dodatkowa spacja
- Po wykonaniu Sprzedawca powinien wysyłać,
- Punktacja
- Długość
L
sprzedawcy w bajtach podzielona przez liczbę miastN
, do kwadratu. Score = L/(N*N)
- Najmniejszy wynik wygrywa
- Podczas publikowania wyniku dziesiętnego należy podać 3 znaczące liczby
- Długość
Przykłady
- Ten sprzedawca odwiedza 3 miasta,
N=3
a jego długość to 9L=9
. Tak więc wynik tej odpowiedzi byłby następującyS = 9 / (3 * 3) = 9/9 = 1
.- Należy pamiętać, że sprzedawca i każdy pokrojony kawałek (których jest 3), wszystkie powinny być poprawnymi programami lub funkcjami w tym samym języku.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4
iL=20
takS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron
ElementData
dozwolone są wbudowane elementy takie jak Mathematica ? (Wątpię, czy to dużo zaoszczędzi, ale nie wiem.)