Wprowadzenie
Twoim zadaniem jest kradzież tajnych planów od nowego startupu technologicznego Dejavu. Przekradasz się przez tylną ścianę, ale znajdujesz drzwi, które do otwarcia wymagają szpilki. Rozpoznajesz markę zamka i wiesz, że wymaga on 5-cyfrowego kodu PIN, używając wszystkich cyfr od 0 do 4. Po każdej wprowadzonej cyfrze zamek sprawdza ostatnie 5 wprowadzonych cyfr i otwiera się, jeśli kod jest poprawny. Musisz szybko ominąć tę blokadę.
Superpermutacje w pigułce
Permutacja to wszystkie możliwe kombinacje określonego zestawu cyfr. na przykład wszystkie permutacje cyfr 0, 1, 2 to:
012, 021, 102, 120, 201 i 210.
Jeśli połączymy wszystkie te permutacje razem, otrzymamy superpermutację:
012021102120201210
ta superpermutacja zawiera wszystkie permutacje 0, 1, 2, ale możliwe jest, aby jedna była krótsza od tej. Pominę tutaj trochę, ale najkrótsza superpermutacja tych cyfr to:
012010210
Dla naszych celów i celów jest to zasadniczo najkrótszy ciąg cyfr, który zawiera wszystkie możliwe kombinacje tych cyfr, tj. Superpermutację.
Zadanie
Twoje zadanie jest nieco trudniejsze niż przykład superpermutacji, jak pokazano powyżej, ponieważ masz jeszcze dwie cyfry do zmartwienia. - Jeśli nie czytałeś o superpermutacjach lub mój powyższy przykład był nieco niejasny, gorąco polecam przeczytanie tego wspaniałego artykułu Patricka Honnera na ten temat (wyzwanie to było dość mocno zainspirowane jego artykułem, więc chwała mu): https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/ . Twoim celem jest napisanie możliwie najkrótszego programu, który generuje superpermutację cyfr od 0 do 4.
Punktacja
Twój program nie pobiera żadnych danych wejściowych i generuje superpermutację cyfr od 0 do 4. Wynikowa superpermutacja musi zostać wydrukowana na konsoli lub widocznie wyświetlona użytkownikowi w zakresie podanym przez wybrany język. To nie musi być najkrótsza możliwa permutacja, musi to być tylko prawidłowa superpermutacja. Z tego powodu celem jest napisanie najkrótszego programu z najkrótszą superpermutacją, więc powinieneś obliczyć swój wynik w następujący sposób:
rozmiar pliku (bajty) * wygenerowana długość superpermutacji (cyfry)
na przykład, jeśli miałbym program 40-bajtowy, a moja superpermutacja ma długość 153 cyfr, mój wynik wyniesie:
40 * 153 = 6120
jak zawsze, celem jest uzyskanie jak najniższego wyniku.
Szablon
Oto jak powinieneś opublikować swoją odpowiedź:
Język | Wynik
link do kodu w środowisku pracy (jeśli to możliwe)
code snippet
objaśnienie kodu itp.
Finały
To jedno z moich pierwszych pytań na tej stronie. Więc proszę powiedz mi, czy coś mi brakuje, lub część mojego wyzwania jest niejasna. Dziękuję i baw się dobrze grając w golfa!