9 miliardów imion Boga to krótka historia Arthura C. Clarke'a. Chodzi o grupę tybetańskich mnichów, których porządek poświęcony jest spisaniu wszystkich możliwych imion Boga, zapisanych własnym alfabetem. Zasadniczo poświęcają się pisaniu każdej możliwej permutacji swojego alfabetu, ograniczonej kilkoma zasadami. W opowieści klasztor zatrudnia inżynierów, aby napisali program, który wykona za nich całą pracę. Twoim celem jest napisanie tego programu.
Zasady:
Alfabet mnicha używa 13 znaków (według moich szacunków). Możesz użyć
ABCDEFGHIJKLM
lub innego zestawu 13 znaków.Minimalna długość możliwej nazwy to 1 znak. Maksymalna długość wynosi 9 znaków.
Żadna postać nie może powtarzać więcej niż 3 razy z rzędu.
AAABA
jest prawidłową nazwą, aleAAAAB
nie jest.Twój program powinien wydrukować (do pliku) każdą możliwą nazwę w kolejności od
A
doMMMLMMMLM
, oddzieloną dowolnym znakiem spoza alfabetu (znaki nowej linii, średniki, cokolwiek).To jest golf golfowy i możesz używać dowolnego języka. Najkrótsze rozwiązanie do 1 czerwca 2014 wygrywa.
Edycja: nazwy powinny zaczynać się A
i kończyć MMMLMMMLM
, przechodząc kolejno przez wszystkie miliardy nazw. Ale konkretna sekwencja należy do ciebie. Możesz wydrukować najpierw wszystkie 1-literowe nazwy, a następnie wszystkie 2-literowe nazwy itp. Lub możesz wydrukować wszystkie nazwy zaczynające się od A
, a następnie wszystkie zaczynające się od B
lub inny wzór. Ale człowiek powinien być w stanie odczytać plik i potwierdzić, że wszystko tam jest i w dowolnej logicznej kolejności, którą wybierzesz, zakładając, że ma czas.
f(k) = k^9 + k^8 + k^7 - 5*k^6 + k^5 + k^4 + 4*k^3 - 2*k^2 + k
. Wdrożenie Sage: goo.gl/0srwhq
105.8GB
wszystko powiedziane i zrobione! Cieszę się, że gwiazdy nie zgasły ... a może musisz wydrukować listę, aby tak się stało ...?