Головоломки для програмування та коди для гольфу

Q & A для програмування головоломки ентузіастів і код гольфістів

10
Розділіть карту потоків води
Це виклик в Інтернеті, який задають Palantir Technologies у своїх інтерв'ю . Група фермерів має деякі дані щодо висоти, і ми допоможемо їм зрозуміти, як опадають дощі над їхніми присадибними угіддями. Ми будемо представляти землю як двовимірний масив висот і використовувати наступну модель, засновану на ідеї, що вода тече вниз: …

19
Перевірте програму Brainfuck
Ще одна проблема розбору Brainfuck, але цього разу ... інша. Ви працюєте в Infinite Monkeys Incorporated, компанії, що виробляє програми Brainfuck, для вирішення різних цікавих проблем (випадково, не менше - адже компанія робить випадкові програми). Однак виявляється, що у ваших швидких машин Тьюрінга, які виконують лише Brainfuck, є невелика і …

3
Unicode UTF Converter
Мета полягає у створенні повністю сумісного перетворювача між офіційними кодуваннями Unicode, як зазначено у поширених питаннях UTF . Зважаючи на те, що це зосереджено на Unicode, я прийму відповідь з найнижчим числом байтів, використовуючи найкращі можливі з кодованих кодувань (що, мабуть, буде UTF-8, якщо, можливо, ви не запрограмуєте його в …

3
Я буду функціонувати, але вихідні не працюю
Мій начальник повинен знати, скільки часу потрібно скласти два цілих числа. Але я не люблю працювати у вихідні дні, і я вважаю, що це справедливо, що і мій код. Проблема полягає в тому, що начальник - вимогливий хлопець і думає, що я повинен прийти вчасно, щоб переконатися, що час, який …

3
Префікси багатокутника
Полігони названі за кількістю сторін, які у них є. П’ятикутник має 5 сторін, восьмикутник - 8 сторін. Але як їх називають? Як називається багатокутник 248? Усі багатокутники суфікс -gon. Для кожного багатокутника є конкретні префікси залежно від кількості сторін. Ось префікси для нижчих чисел: 3 - tri 4 - tetra …

26
Сторона трикутника Бічна сторона
Дано три сторони трикутника, область друку цього трикутника. Тестові приклади: В: 2,3,4 Вихід: 2,90473750965556 В: 3,4,5 Вихід: 6 Припустимо, три сторони a, b, c завжди a> 0, b> 0, c> 0, a + b> c, b + c> a, c + a> b.
17 code-golf  math 

3
Найшвидший код, щоб знайти наступний прайм
Проблема полягає в наступному. Введення: Ціле числоn Вихід: Найменший праймер більший за n. Завдання полягає в тому, щоб дати найшвидший код для цього. Я перевіряю код на значення, починаючи з розміру приблизно10^8 10^200 і подвоюючи розмір, поки на моєму комп’ютері не буде більше однієї хвилини 10 секунд. Код, який виграє …

22
Дайте найменше число, яке має N дільників
Ваша функція приймає натуральне число і повертає найменше натуральне число, яке має саме таку кількість дільників, включаючи і себе. Приклади: f(1) = 1 [1] f(2) = 2 [1, 2] f(3) = 4 [1, 2, 4] f(4) = 6 [1, 2, 3, 6] f(5) = 16 [1, 2, 4, 8, 16] …

2
Компактна програма Befunge
Befunge - це двовимірна езотерична мова програмування. Основна ідея полягає в тому, що (односимвольні) команди розміщуються на двовимірній сітці. Контрольний потік проходить по сітці, виконуючи команди, які він передає, та змінюючи напрямок, коли він потрапляє на стрілку ( >^<v). Команди засновані на стеці; дивись цей список . Дивіться також http://esolangs.org/wiki/Befunge …

30
Роздрукуйте цю таблицю множення
Напишіть найкоротший код для друку наступної таблиці множення: 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 1×4=4 2×4=8 3×4=12 4×4=16 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 …

3
Напишіть код java, щоб виявити версію JVM
Мета полягає в тому, щоб написати код Java, який виявляє версію JVM, покладаючись на зміни сумісності, побічні ефекти, помилки та / або невизначене поведінку, що працює таким чином в одній версії та іншим способом в іншій версії. Крім того, код повинен бути принаймні трохи читабельним, не жертвуючи пробілами та розбірливими …

2
Складіть реджекси
У цьому завданні ви повинні написати програму, яка читає регулярний вираз і генерує іншу програму, яка виводить, чи приймається введення рядка цим регулярним виразом. Вихід повинен бути програмою, написаною тією ж мовою, що і ваша публікація. Вхідні дані Вхід - це регулярний вираз r, що відповідає наступному ABNF (початкове правило …

10
Висхідна матриця
"Висхідна матриця" - це нескінченна матриця цілих чисел (включено 0), в якій будь-який елемент є найменшим доступним елементом, який раніше не використовувався у відповідному рядку та стовпці: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

7
C: замініть таблицю SubBytes AES FIPS-197 кодом постійного часу
У FIPS-197 ( Розширений стандарт шифрування , відомий як AES) він широко використовується SubBytes, який може бути реалізований як unsigned char SubBytes(unsigned char x) { static const unsigned char t[256] = { 0x63,0x7C,0x77,0x7B,0xF2,0x6B,0x6F,0xC5,0x30,0x01,0x67,0x2B,0xFE,0xD7,0xAB,0x76, 0xCA,0x82,0xC9,0x7D,0xFA,0x59,0x47,0xF0,0xAD,0xD4,0xA2,0xAF,0x9C,0xA4,0x72,0xC0, 0xB7,0xFD,0x93,0x26,0x36,0x3F,0xF7,0xCC,0x34,0xA5,0xE5,0xF1,0x71,0xD8,0x31,0x15, 0x04,0xC7,0x23,0xC3,0x18,0x96,0x05,0x9A,0x07,0x12,0x80,0xE2,0xEB,0x27,0xB2,0x75, 0x09,0x83,0x2C,0x1A,0x1B,0x6E,0x5A,0xA0,0x52,0x3B,0xD6,0xB3,0x29,0xE3,0x2F,0x84, 0x53,0xD1,0x00,0xED,0x20,0xFC,0xB1,0x5B,0x6A,0xCB,0xBE,0x39,0x4A,0x4C,0x58,0xCF, 0xD0,0xEF,0xAA,0xFB,0x43,0x4D,0x33,0x85,0x45,0xF9,0x02,0x7F,0x50,0x3C,0x9F,0xA8, 0x51,0xA3,0x40,0x8F,0x92,0x9D,0x38,0xF5,0xBC,0xB6,0xDA,0x21,0x10,0xFF,0xF3,0xD2, 0xCD,0x0C,0x13,0xEC,0x5F,0x97,0x44,0x17,0xC4,0xA7,0x7E,0x3D,0x64,0x5D,0x19,0x73, 0x60,0x81,0x4F,0xDC,0x22,0x2A,0x90,0x88,0x46,0xEE,0xB8,0x14,0xDE,0x5E,0x0B,0xDB, 0xE0,0x32,0x3A,0x0A,0x49,0x06,0x24,0x5C,0xC2,0xD3,0xAC,0x62,0x91,0x95,0xE4,0x79, 0xE7,0xC8,0x37,0x6D,0x8D,0xD5,0x4E,0xA9,0x6C,0x56,0xF4,0xEA,0x65,0x7A,0xAE,0x08, 0xBA,0x78,0x25,0x2E,0x1C,0xA6,0xB4,0xC6,0xE8,0xDD,0x74,0x1F,0x4B,0xBD,0x8B,0x8A, 0x70,0x3E,0xB5,0x66,0x48,0x03,0xF6,0x0E,0x61,0x35,0x57,0xB9,0x86,0xC1,0x1D,0x9E, 0xE1,0xF8,0x98,0x11,0x69,0xD9,0x8E,0x94,0x9B,0x1E,0x87,0xE9,0xCE,0x55,0x28,0xDF, 0x8C,0xA1,0x89,0x0D,0xBF,0xE6,0x42,0x68,0x41,0x99,0x2D,0x0F,0xB0,0x54,0xBB,0x16}; return t[x];} …

21
Напишіть програму, яка використовує всі друковані не буквено-цифрові символи ASCII
Зокрема, використовуйте кожен із цих символів принаймні один раз у своєму вихідному коді: ! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ Символи всередині коментарів, рядкових літералів, регулярних …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.