Ваша мета - написати програму, яка друкує номер. Чим більша кількість, тим більше очок ви отримаєте. Але будьте обережні! Довжина коду є обмеженою і сильно зваженою у функції скорингу. Ваш друкований номер буде поділений на куб від кількості байтів, які ви використовували для свого рішення .
Отже, скажімо, ви надрукували, 10000000
і ваш код 100
довгий в байтах. Ваш остаточний рахунок буде 10000000 / 100^3 = 10
.
Для того, щоб зробити цей виклик трохи складніше, слід дотримуватися інших правил.
- Ви не можете використовувати цифри у своєму коді (0123456789);
- Ви можете використовувати математичні / фізичні / тощо. константи, але лише якщо вони менші від 10. (наприклад, ви можете використовувати Pi ~ = 3,14, але ви не можете використовувати константу Avogadro = 6e23)
- Рекурсія дозволена, але згенероване число повинно бути кінцевим (тому нескінченне не приймається як рішення. Ваша програма повинна завершитись правильно, передбачаючи необмежений час та пам'ять, і генерувати запитуваний вихід);
- Ви не можете використовувати операції
*
(множити),/
(ділити),^
(потужність) та будь-який інший спосіб їх позначення (наприклад2 div 2
, не дозволено); - Ваша програма може вивести більше, ніж одне число, якщо вам це потрібно . Тільки найвищий вважатиметься за бали;
- Однак ви можете об'єднати рядки: це означає, що будь-яка послідовність суміжних цифр буде розглядатися як одне число;
- Ваш код запуститься як є. Це означає, що кінцевий користувач не може редагувати жоден рядок коду, а також не може вводити номер чи щось інше;
- Максимальна довжина коду - 100 байт.
Таблиця лідерів
- Стівен Х. , Піт ≈ f φ (1,0,0) +7 (256 26 ) / 1000000 [1]
- Просто красиве мистецтво , Ruby ≈ f φ 121 (ω) (126) [1]
- Пітер Тейлор , 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]
- Просто красиве мистецтво , Ruby ≈ f ω ω2 +1 (1983)
- eaglgenes101 , Джулія ≈ f ω3 (127)
- col6y , Python 3, ≈ (127 → 126 → ... → 2 → 1) / 99 3 [1] [3]
- Toeofdoom , Haskell, ≈ a 20 (1) / 99 3 [1]
- Fraxtil , dc, ≈ 15 ↑ ¹⁶⁶⁶⁶⁶⁵ 15/100 3 [3]
- Magenta , Python, ≈ ack (126,126) / 100 3 ≈ 10 ↑ 124 129
- Кендалл Фрей , ECMAScript 6, ≈ 10 3 ↑ 4 3 /100 3 [1]
- Ілмарі Karonen , GolfScript, ≈ 10 ↑ 3 10 377 /18 3 [1]
- BlackCap , Haskell, ≈ 10 ↑↑ 65503/100 3
- рекурсивний , Python, ≈ 2↑↑ 11/95 3 ≈ 10 ↑↑ 8.63297 [1] [3]
- нм , Хаскелл, ≈ 2↑↑ 7/100 3 ≈ 10 ↑↑ 4.63297 [1]
- Девід нишпорення , C ≈ 10 10 4 × 10 22 /83 3 ≈ 10 ↑↑ 4,11821 [2]
- Primo , Perl ≈ 10 (+12750684161!) 5 × 2 27 /100 3 ≈ 10 ↑↑ 4,11369
- Мистецтво , C ≈ 10 10 2 × 10 6 /98 3 ≈ 10 ↑↑ 3,80587
- Роберт Шорлі , x86, ≈ 10 2 2 19 +32 / 100 3 ≈ 10 ↑↑ 3.71585
- Тобія , АПЗ, ≈ 10 10 353 /100 3 ≈ 10 ↑↑ 3,40616
- Даррен Стоун , С, ≈ 10 10 97,61735 / 98 3 ≈ 10 ↑↑ 3,29875
- ecksemmess , C ≈ 10 2 320 на / 100 3 ≈ 10 ↑↑ 3,29749
- Адам Спейт , vb.net, ≈ 10 5000 × (2 64 ) 4 /100 3 ≈ 10 ↑↑ 3,28039
- Джошуа , удар, ≈ 10 10 15 /86 3 ≈ 10 ↑↑ 3,07282
Виноски
- Якби кожен електрон у Всесвіті був кубітом, і кожен його суперпозиція міг би з користю використовуватись для зберігання інформації (яка, поки ви фактично не знаєте , що зберігається, теоретично можливо), для цієї програми потрібно більше пам'яті, ніж могло б можливо, існує, і тому не може бути запущено - зараз, або в будь-який можливий момент у майбутньому. Якщо автор мав намір надрукувати значення більше, ніж ≈3 ↑↑ 3,28 відразу, ця умова застосовується.
- Для цієї програми потрібно більше пам’яті, ніж зараз існує, але не стільки, щоб теоретично її не можна було зберігати на мізерній кількості кубітів, і тому один день може існувати комп'ютер, який міг би запустити цю програму.
- Усі доступні в даний час перекладачі видають помилку під час виконання програми, або програма іншим чином не виконає виконання, як задумав автор.
- Запуск цієї програми завдасть непоправної шкоди вашій системі.
Редагувати @primo : я оновив частину табло, використовуючи, сподіваюсь, простіше порівняти позначення, десяткові знаки для позначення логарифмічної відстані до наступної вищої сили. Наприклад 10 ↑↑ 2,5 = 10 10 √10 . Я також змінив деякі бали, якщо я вважав, що аналіз користувача є несправним, не соромтеся оскаржувати будь-яке з них.
Пояснення цього позначення:
Якщо 0 ≤ b < 1
, то .a↑↑b = ab
Якщо b ≥ 1
, то .a↑↑b = aa↑↑(b-1)
Якщо b < 0
, то .a↑↑b = loga(a↑↑(b+1))
12e10
(12 * 10 ^ 10) як 12*10^10
?
500b
, чи недійсна ця програма? Тобто, чи можемо ми ігнорувати всі нечислові речі, які програма друкує? І якщо так, то чи щось на кшталт 50r7
вважатиметься 507
?