Twoim celem jest napisanie programu, który wypisze liczbę. Im większa liczba, tym więcej punktów otrzymasz. Ale bądź ostrożny! Długość kodu jest zarówno ograniczona, jak i ważona w funkcji oceniania. Twój wydrukowany numer zostanie podzielony przez sześcian liczby bajtów użytych do rozwiązania .
Powiedzmy, że wydrukowałeś, 10000000
a twój kod ma 100
długość bajtów. Twój końcowy wynik to 10000000 / 100^3 = 10
.
Aby uczynić to wyzwanie nieco trudniejszym, należy przestrzegać innych zasad.
- Nie możesz używać cyfr w swoim kodzie (0123456789);
- Państwo może używać matematyczne / fizyczne / etc. stałe, ale tylko jeśli są mniejsze niż 10. (np. Możesz użyć Pi ~ = 3,14, ale nie możesz użyć stałej Avogadro = 6e23)
- Rekurencja jest dozwolona, ale wygenerowana liczba musi być skończona (więc nieskończoność nie jest akceptowana jako rozwiązanie. Twój program musi zakończyć się poprawnie, przy założeniu nieograniczonego czasu i pamięci oraz wygenerować żądany wynik);
- Nie można używać operacji
*
(mnożenie),/
(dzielenie),^
(moc) ani w żaden inny sposób do ich wskazania (np.2 div 2
Nie jest dozwolone); - Twój program może wypisać więcej niż jedną liczbę, jeśli jest to potrzebne . Tylko najwyższy będzie liczył się do punktacji;
- Można jednak łączyć łańcuchy: oznacza to, że każda sekwencja sąsiadujących cyfr będzie traktowana jako pojedyncza liczba;
- Twój kod będzie działał bez zmian. Oznacza to, że użytkownik końcowy nie może edytować żadnego wiersza kodu ani nie może wprowadzić liczby ani niczego innego;
- Maksymalna długość kodu wynosi 100 bajtów.
Tabela liderów
- Steven H. , Pyth ≈ f φ (1,0,0) +7 (256 26 ) / 1000000 [1]
- Simply Beautiful Art , Ruby ≈ f φ 121 (ω) (126) [1]
- Peter Taylor , GolfScript ≈ f ε 0 + ω + 1 (17) / 1000 [1]
- res , GolfScript ≈ f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (126)))))))) [1]
- Simply Beautiful Art , Ruby ≈ f ω ω2 +1 (1983)
- eaglgenes101 , Julia ≈ f ω3 (127)
- col6y , Python 3, ≈ (127 → 126 → ... → 2 → 1) / 99 3 [1] [3]
- Toeofdoom Haskell, ≈ 20 (1) / 99 3 [1]
- Fraxtil , dc, ≈ 15 ↑ ¹⁶⁶⁶⁶⁶⁵ 15/100 3 [3]
- Magenta , Python, (ack (126 126) / 100 3 ≈ 10 ↑ 124 129
- Kendall Frey , ECMAScript 6 ≈ 10 3 ↑ 4 3 /100 3 [1]
- Ilmari Karonen , GolfScript, ≈ 10 ↑ 3 10 377 /18 3 [1]
- BlackCap , Haskell, ≈ 10 ↑↑ 65503/100 3
- rekurencyjny , Python, ≈ 2↑↑ 11/95 3 ≈ 10 ↑↑ 8.63297 [1] [3]
- nm , Haskell, ≈ 2↑↑ 7/100 3 ≈ 10 ↑↑ 4.63297 [1]
- David odchylenia , C ≈ 10 10 4 X 10 22 /83 3 ≈ 10 ↑↑ 4,11821 [2]
- Primo , Perl ≈ 10 (12750684161!) 5 x 2 27 /100 3 ≈ 10 ↑↑ 4,11369
- Sztuki , C ≈ 10 10 2 x 10 6 /98 3 ≈ 10 ↑↑ 3,80587
- Robert Sørlie , x86, ≈ 10 2 2 19 +32 / 100 3 ≈ 10 ↑↑ 3,71585
- Tobia , APL ≈ 10 10 353 /100 3 ≈ 10 ↑↑ 3,40616
- Darren Stone , C, ≈ 10 10 97,61735 / 98 3 ≈ 10 ↑↑ 3.29875
- ecksemmess , C ≈ 10 2 320 /100 3 ≈ 10 ↑↑ 3,29749
- Adam Speight , vb.net, ≈ 10 5000 x (2 64 ) 4 /100 3 ≈ 10 ↑↑ 3,28039
- Joshua , bash, ≈ 10 10 15 /86 3 ≈ 10 ↑↑ 3,07282
Przypisy
- Gdyby każdy elektron we wszechświecie był kubitem, a każda jego superpozycja mogłaby być z korzyścią wykorzystywana do przechowywania informacji (co, o ile tak naprawdę nie trzeba wiedzieć, co jest przechowywane, jest teoretycznie możliwe), program ten wymaga więcej pamięci niż mógłby być może istnieją i dlatego nie można ich uruchomić - teraz ani w żadnym możliwym punkcie w przyszłości. Jeśli autor zamierzał wydrukować wartość większą niż ↑3 ↑↑ 3.28 jednocześnie, warunek ten ma zastosowanie.
- Ten program wymaga więcej pamięci niż obecnie, ale nie tak bardzo, że teoretycznie nie mógłby być przechowywany na skąpej liczbie kubitów, dlatego też może kiedyś istnieć komputer, który mógłby uruchomić ten program.
- Wszyscy obecnie dostępni tłumacze zgłaszają błąd w czasie wykonywania lub program nie działa inaczej, jak zamierzał autor.
- Uruchomienie tego programu spowoduje nieodwracalne uszkodzenie systemu.
Edytuj @primo : Zaktualizowałem część tablicy wyników, używając, mam nadzieję, łatwiejszego do porównania zapisu, z ułamkami dziesiętnymi, które oznaczają logarytmiczną odległość do następnej wyższej mocy. Na przykład 10 ↑↑ 2,5 = 10 10 √10 . Zmieniłem również niektóre wyniki, jeśli uważałem, że analiza użytkownika jest wadliwa, możesz zakwestionować którąkolwiek z nich.
Objaśnienie tego zapisu:
Jeśli 0 ≤ b < 1
tak .a↑↑b = ab
Jeśli b ≥ 1
tak .a↑↑b = aa↑↑(b-1)
Jeśli b < 0
tak .a↑↑b = loga(a↑↑(b+1))
12e10
(12 * 10 ^ 10) jako 12*10^10
?
500b
, czy to jest nieprawidłowe? To znaczy, czy możemy zignorować wszystkie nienumeryczne rzeczy drukowane przez program? A jeśli tak, czy coś takiego może się 50r7
liczyć 507
?