Передай привет пионерам информатики

30

Выберите своего любимого известного ученого-компьютерщика или пионера информатики, который родился в 1942 году или ранее (1943 год ознаменовал начало создания «первого» компьютера ). У них должна быть страница Википедии или другой сайт, на котором указан год их рождения и рассказывается, как их достижения связаны с информатикой. Вы можете выбрать то же самое, что и кто-то другой, но рекомендуется выбирать кого-то нового

Возьмите имя, которым они обычно известны. Скорее всего, это будут их имя и фамилия, но они могут включать сокращения или отчества, если это более распространено. Например, для Тони Хоара оба Tony Hoareи C. A. R. Hoareбыли бы приемлемы.

Все символы в имени должны быть напечатаны ASCII . Если имя содержит символы, которые не могут быть напечатаны в ASCII, хорошо, если вы выберете что-то приблизительное. например, Kurt Godelвместо Kurt Gödel.

Возьмите набор уникальных символов в имени (например C. ARHoare) и сдвиньте их по шкале ASCII для печати к году рождения вашего ученого, перемещаясь по кругу из ~космоса. (В основном добавьте год рождения по модулю 95.) Это даст вам (скорее всего) новый набор печатных символов ASCII.

Например, CAR Hoare родился в 1934 году, поэтому смещение каждого символа C. ARHoareна 1934 (34 mod 95) дает ePBctj2$5(.

Этот фрагмент стека сделает все изменения за вас:

function go() {var name = document.getElementById("name").value;var year = parseInt(document.getElementById("year").value);var unique = {};for (var i = 0; i < name.length; i++) { unique[name.charAt(i)] = true; } var result = ''; for (var char in unique) { result += String.fromCharCode((char.charCodeAt(0) - 32 + year) % 95 + 32); } document.getElementById("result").value = result; }
Name: <input type="text" id="name" value="C. A. R. Hoare"><br>
Birth Year: <input type="text" id="year" value="1934"><br>
<button type="button" onclick="go()">Ok</button><br>
Result: <input type="text" id="result" readonly>

Вызов

Используя этот набор и только этот набор (без вкладок, без новых строк) смещенных печатаемых символов ASCII, напишите программу, которая печатает Hello, [name]!на стандартный вывод или ближайшую альтернативу, где [name]то же самое точное имя, которое вы выбрали выше и смещенное, чтобы получить символы вашей программы. Вы можете использовать несколько символов из набора или не использовать их вообще. Например, теоретическая программа PetBee($25печатает Hello, C. A. R. Hoare!.

счет

Ваша оценка - это размер кода в байтах, умноженный на количество уникальных символов в выбранном вами имени. Самые низкие болячки побеждают.

Кальвин Хобби
источник
6
Если бы я выбрал, например, Мухаммада ибн Мусу аль-Хваризми, и использовал разумное обозначение их имени в ASCII, например, Мухаммед ибн Муса аль-Хорезми, это было бы приемлемо?
ymbirtt
3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy, Рожденный 1906. Это было бы хорошо?
Билл Вуджер,
2
@BillWoodger Я думаю, это немного натянуто. Я был бы в порядке, Rear Admiral Grace Murray Hopperхотя. Помните, что размер вашего кода умножается на количество уникальных символов в имени, поэтому более длинное имя не обязательно лучше.
Увлечения Кэлвина
5
@ Calvin'sHobbies Ой ой. Мысль, которая была песчинкой на моем экране.
Джастин
2
Как насчет брата CAR Hoare, CDR Hoare?
Дэвид Конрад

Ответы:

8

Бессонница, 103 99 98 * 8 = 784

Джордж Буль , 1815

Все 5 программ ниже имеют одинаковую длину (98) и одинаковый выход.

oyoooyLyyyyoyLqoyyoyoLL*yyoLqy|oLq*yLyoyyoLqoq*yLyyLoyooLyyy*qL|yqoLq**LoooyoLqy|qLLo*qyLq*oq|L|oL
oyoooyLyyyyoyLqoyyoyoLLy*yyoLq*oqL*LqyyyoyLyooyyoLyyLoyooLyyyL*q|qoL|q*LoooyoLqyq*LLo*qyLq*o|qL|oL
oyoooyLyyyyoyLqoyyoyoLL*yyoLqy|oLq*yLyoyyoLqoq*yLyyLoyooLyyyL*qq|oL|yq*LoooyoLqyq*LLo*qyLq*o|qL|oL
oyoooyLyyyyoyLqoyyoyoLLy*yyoLq*oqL*LqyyyoyLyooyyoLyyLoyooLyyyL*q|qoL|q*LoooyoLqyq*LL|qyyLy*qq*L|oL
oyoooyLyyyyoyLqoyyoyoLL*yyoLq|oLq*yLyoyyoLyq|oLq|yq*LqooLoyyoyLyLoyyoyLoooyoLo|q|LLq|yyLooooyoLqyL

Печать Hello, George Boole!

Бессонница, 103 * 6 = 618 (вероятно, оптимальная и уникальная)

Если G Boole( Джордж Буль , 1815) приемлемо ...

ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL

Печать Hello, G Boole!


Бессонница, 94 92 89 85 83 * 10 = 830

Курт Годел, 1906 г.

kukuzkzjzkuxkujx{rxjkjxzjukukzj{ukukzjkrxujzujk{rxujjku{jxuukujrxzjuxjk{urxjxukzj{j

Печать Hello, Kurt Godel!

Я написал программу для поиска решения. Моя вторая версия программы должна быть ближе к оптимальной, чем моя первая версия.

В соответствии с мелочами @Martin Büttner ( 100 92 88 85 символов, тот же набор символов):

kukuzkzjzkuxkujx{rxjkjxzjukukzj{ukukzjkrxujzujk{rxujju{jxuukujrxuxjzxjk{urxjxjxukzj{j

Печать Hello, Kurt Goedel!

переводчик

n̴̖̋h̷͉a̷̭̿h̸̡̅ẗ̵̨d̷̰ĥ̷̳
источник
Вы можете включить его в свой ответ и скрыть по умолчанию.
Оптимизатор
2
Nitpick: правильная транслитерация с Gödelиспользованием только латинского алфавита Goedel. ;)
Мартин Эндер
@Optimizer: у меня есть другой ответ, также использующий бессонницу, поэтому я поместил его в другой ветке.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
1
Я знаю, но он будет занимать столько же места, сколько и ссылка на переводчика, и вы можете продолжать включать фрагмент в любой ответ, который вам нравится. Это цель фрагментов! :)
Оптимизатор
15

CJam, 230 117 115 114 113 110 107 106 байт * 13 = 1378

23)3*c11(2#)c111(((c3*))))22 2*c32c23 3*c3))$(113))c1$)))2$)2$(32c3)))$(3)$))1($)1($)3))$)1($)1$(12$(((33c

Проверьте это здесь.

Я выбрал Edsger Dijkstra, 1930 года рождения, что дает мне c#2&$1>b()* 3(которого я действительно выбрал, потому что он был первым, кого я нашел, чье имя дало полезные символы для CJam; с тех пор я проверил дюжину имен, и ни одно не выглядело как многообещающее).

Код в основном только строит коды ASCII , используя 1, 2, 3, *, #(возведение в степень) и (, )(декремент, приращение) и преобразует их в символ с c. Чтобы сохранить некоторые символы, я иногда могу скопировать более ранний символ $( 0$копирует верхний элемент стека, 1$копирует второй верхний элемент стека и т. Д.).

Вот разбивка кода на символы (это также работает):

23)3*c    "(23+1)*3 -> 72 -> H";
11(2#)c   "(11-1)^2+1 -> 101 -> e";
111(((c   "111-3 -> 108 -> l";
3*)       "Turn l into string lll and split off the third l.";
)))       "l+3 -> o";
22 2*c    "22*2 -> 44 -> ,";
32c       "32 -> Space";
23 3*c    "23*3 -> 69 -> E";
3))$(     "e-1 -> d";
113))c    "113+2 -> 115 -> s";
1$)))     "d+3 -> g";
2$)       "d+1 -> e";
2$(       "s+1 -> r";
32c       "32 -> Space";
3)))$(    "E-1 -> D";
3)$))     "g+2 -> i";
1($)      "i+1 -> j";
1($)      "j+1 -> k";
3))$)     "r+1 -> s";
1($)      "s+1 -> t";
1$(       "s-1 -> r";
12$(((    "d-3 -> a";
33c       "33 -> !";
Мартин Эндер
источник
9

Marbelous , 83 байта * 10 = 830

Я выбрал, R Kowalski, 1941который позволяет мне использовать:{It9A+6=53

++63
A66333696A5A696A6A69
A5633A..+3+6+3+9++
A56A+I
AA+6
=3
3653666665
+I+I+6+6+A++

Этот ответ немного сложнее, чем старый ответ (ниже), так как многие шарики проходят через несколько устройств, хотя в большинстве случаев мрамору просто добавляют несколько вещей перед печатью. Поскольку у меня не было вычитания или низких чисел, младшие коды ascii пришлось формировать путем сложения двух мраморов с высокими значениями, так как это приводит к сложению по модулю. (Я использовал =3в качестве дефлектора, так как он толкает каждый мрамор, не равный 3 вправо, и выглядит как милый кот)

выход:

Hello, R Kowalski!

старый ответ:

Марбелоус , 113 * 17 = 1921

У Marbelous все в порядке, так как когда-либо выпадающий с доски мрамор печатается, из-за его 2D-характера, ему нужны несколько цифр + некоторая арифметика, чтобы не допустить, чтобы борад становился слишком большим.

Я выбрал, Philip D. Estridge, 1937кто дает u./26EiSj9:8*-+в качестве доступного набора символов. На самом деле используются символы.+-245689E

22
6865
4965686866282252686968696E2244666E65686422456E6E6E6964
--..+4+4+9+4-2-2....+4..+2-2..+9..-4+4..-2..+5+6+4

Доска довольно проста, первые 3 строки - литералы, когда группа из двух - шестнадцатеричное значение, четвертая строка - арифметические операции для формирования кодов ascii, которые не могут быть написаны явно из-за ограниченного набора символов.

выход:

Hello, Philip Donald Estridge!

Вы можете попробовать это здесь!

Сейчас я буду искать возможного лучшего кандидата, так как похоже, что marbelous действительно может быть конкурентоспособным здесь.

overactor
источник
Не уверен, что сокращение имени считается приемлемым.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ Я использую имя, а не полное имя, кажется оправданным.
overactor
Я могу сделать G Booleс 105 символами * 6 - я думаю, что должно быть ограничение на то, насколько имя может быть сокращено.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
3
Ваша программа не работает без новой строки. Вопрос явно запрещает использование символа новой строкиUsing this set and only this set (no tabs, no newlines) of shifted printable ASCII characters
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
6

Brainfuck, 1846 * 12 = 22152

Просто чтобы иметь язык, отличный от CJam. Требуется оригинальная спецификация Brainfuck с байтовым типом данных, который переполняется при 256.

Используются только 2 символа: +для увеличения текущей ячейки и .для вывода текущей ячейки.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++.+++++++++++++++++.++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.

Выход

Hello, John McCarthy!

Благодарность идет к Coredump для выявления следующего в его ответе:

 "John McCarthy" 1927
 ("John McCarthy" "e+*;h~^|.0$5" 12)
Уровень реки St
источник
На выходе отсутствует восклицательный знак!
трихоплакс
1
@ githubphagocyte Спасибо, это исправлено сейчас!
Уровень Река St
Я рад, что это помогло.
coredump
5

"Привет, Никлаус Эмиль Вирт!" (Befunge-98, 222 × 14 = 3108)

Из Википедии :

Никлаус Эмиль Вирт (родился 15 февраля 1934 года) - швейцарский ученый-компьютерщик, известный за разработку нескольких языков программирования, включая Паскаль, а также за разработку нескольких классических тем в области разработки программного обеспечения. В 1984 году он получил премию Тьюринга за разработку последовательности инновационных компьютерных языков.

Смена 34, Niklaus Emil Wirth(18 символов, 14 уникальных) заканчивается как p,./$86Bg0,/By,57+.

Код ( попробуйте здесь ):

88888888+++++++50p50g8+,50g88885+++++00pg,g7+,g7+,g55++,888866+++++,8888+++,50g68++,g886++5/+,g6+,g7+,50g88755+++++,g88++,g77++,8888+++,50g5+,g8+,g886++5/+,g7+,8888+++,50g887+++,g886++5/+,g85++,g87++,g88+5/+,g5/85++,50g00p

Сломать:

88888888+++++++ # Put eight '8's on the stack and add them together (ASCII 64 = `@`)
50p             # Save this value in row 0, column 5 (where the 6th '8' was)
50g8+,          # Fetch the value we just saved, add 8 and print it (ASCII 72 = `H`)
50g88885+++++   # Fetch it again and add 37 (4×8+5) (ASCII 101 = `e`)
00p             # Save this value in row 0, column 0 (the very first character)
g,              # Fetch & print this value (stack is empty, so coordinates will be zero)
g7+,g7+,        # Fetch it again, add 7 (ASCII 108 = `l`) and print. Repeat.
g55++,          # Print `o`
888866+++++,    # Print `,` (4×8+2×6=44)
8888+++,50g68++,g886++5/+,g6+,g7+,50g88755+++++,g  # Continue in a similar fashion,
88++,g77++,8888+++,50g5+,g8+,g886++5/+,g7+,8888++  # using integer division (`/`) in
+,50g887+++,g886++5/+,g85++,g87++,g88+5/+,g5/85++, # a few places
50g00p          # Fetch the `@` character and put it in cell (0,0)

Последняя строка помещает символ HALT ( @) в начале строки. Когда элемент управления вернется к этой точке, программа остановится. Это на самом деле не должно быть необходимым, потому что @символ в (5,0) все еще там, и ничего не должно быть выведено до того, как он будет достигнут. Тем не менее, единственный онлайн-переводчик Befunge, который запустит это чудовище , не будет работать должным образом без него.

Это является на самом деле можно сделать рабочий раствор с помощью всего Niklaus Wirth(12 уникальных символов, p,./$86By,57+), но код намного, намного больше.

(Помечен как Befunge-98, потому что ширина Befunge-93 ограничена 80 символами.)

брезгливый оссифраж
источник
4

CJam, 323 байта * 10 = 3230

5((e5(((e2(((e2(((e2((e2c525e2e2(e2(((e2(e2((e2(((c525e5(e5(((e2(e2c2(($Be2(e2(((e2(e2e2((e2(e2e2(c2e2e2((e2e2(e2(((e2(e2c2(($((((((((((((B((((($(((((2e2(e2(e2e2((e2(((e2(e2e2((c2$2$((c2$2$525e2(((e2((e2((e2((e2e2(((e2((c2$2$22((((((($22(((((((((($22(((((($((((255((e2((e2(e2((e2(((e2((c22(((($Be2e2(e2(e2((e2(((e2(((e2(((c

Выход:

Hello, C. A. R. Hoare!

CJam, 662 байта * 10 = 6620 8700

Не для победы, а только потому, что это выглядит возможным. Используется только 2e(c.

2e2e2((e2e2(((e2(((e2(((e2((e2c2e2e2(((e2e2(e2(((e2(e2((e2(((c2e2e2e2((e2((e2e2(((e2(e2c2e2e2e2((e2((e2e2(((e2(e2c2e2(e2(((e2(e2e2((e2(e2e2(c2e2((e2e2((e2e2(e2(((e2(e2c2e2((e2e2((e2(((e2(((e2((e2e2c2e2((e2(((e2e2(((e2((e2(e2(((e2(c2e2(e2(e2e2((e2(((e2(e2e2((c2e2((e2e2((e2(((e2(((e2((e2e2c2e2((e2(((e2e2(((e2((e2(e2(((e2(((c2e2(e2(e2e2((e2(((e2(e2e2((c2e2((e2e2((e2(((e2(((e2((e2e2c2e2(((e2(((e2((e2((e2((e2e2(((e2((c2e2(e2(e2e2((e2(((e2(e2e2((c2e2((e2e2((e2(((e2(((e2((e2e2c2e2e2((e2e2(((e2(((e2(((e2((e2c2e2(e2(((e2(e2e2((e2(e2e2(c2e2(((e2e2(e2(((e2(e2(((e2(((e2(((c2e2e2e2(((e2((e2(e2((e2(((e2((c2e2e2(((e2e2(e2(((e2(e2((e2(((c2e2(e2e2(e2(e2((e2(((e2(((e2(((c

Выход:

Hello, C. A. R. Hoare!

Генератор

q{i
[7209 3113 41 41 41 9 1 0]
{
1$3^)4%@1$+@*4/\'(*\
}%W2tW%"e2"*
'c}%

Тривиальный ответ 222(((((((((((c(сгенерированный q{i222_@-'(*'c}%) имеет 3420 байтов.

jimmy23013
источник
Ух ты, я не знал, что ты можешь использовать e_внешние числовые литералы.
Мартин Эндер
Вы проверили, насколько низко вы можете получить, используя повторения 2? Или с помощью других (полезных) символов B, 5а $? (Например, вы можете получить второй-четвертый пробел и второй и третий период с 2$, а также Aс 2$((.)
Мартин Эндер
@ MartinBüttner Пытался немного поиграть в гольф от руки. Но это казалось слишком сложным. Может быть, я напишу программу для этого позже. Но это все равно не победит.
jimmy23013
4

CJam, 16 * 307 288 = 4912 4608

B(7*2+cB(B(*2(+cB(B*((cB(B*((cBB*7-(((c5 8*5(+c8 2*2*cBB*2/5+cBB*7-cBB*5-cBB*Bm5-(cBB*4-cBB*7-c8 2*2*cB7*(((cBB*7-(((cBB*Bm5-(cBB*B-c8 2*2*c8B*2+8-cBB*7-(((c7 2+B*(cBB*8 2*-cBB*B-c8 2*2*cB(7*2(+cBB*7-(((cBB*7-cB(B(*2(+cB(B*((cB(B*((c8 2*2*cB7*cBB*8 2*-cB(B*((cBB*B-cB(B(*2(+cBB*7-c5(8*1+c

Вывод:

Hello, Arthur John Robin Gorell Milner!

Это мой первый ответ с использованием CJam, так что, конечно, это может лучше сыграть в гольф (любой намек приветствуется).


Вот некоторый служебный код, который я использовал. Поскольку я вычислил набор символов для некоторых других имен, это может быть полезно для тех, кто лучше знает CJam (или, может быть, для другого языка).

  • Найти набор символов, а также количество уникальных символов
(defun character-set (name year)
  (let* ((uniques (remove-duplicates name))
         (size (length uniques))
         (buffer (make-array size 
                             :element-type 'character
                             :fill-pointer 0)))
    (loop for c across uniques
          do (vector-push
              (code-char
               (+ #x20 (mod (- (+ (char-code c) year) #x20) 95)))
              buffer)
          finally (return (values buffer size)))))
  • Определите список известных фигур
(defparameter *masters*  
  '("Grace Murray Hopper" 1906
    "Augusta Ada King, Countess of Lovelace" 1815
    "Augusta Ada Byron" 1815
    "Ada Lovelace" 1815
    "John von Neumann" 1903
    "Neumann Janos Lajos" 1903
    "Charles Babbage" 1791
    "John McCarthy" 1927
    "Wilhelm Ackermann" 1896
    "George Boole" 1815
    "Kurt Godel" 1906
    "Andrei Nikolaievitch Kolmogorov" 1903
    "Bertrand Arthur William Russell, 3rd Earl Russell" 1872
    "Arthur John Robin Gorell Milner" 1934))
  • Вычислить разрешенные печатные наборы символов, отсортировать по размеру набора
(sort (loop for (n y) on *masters* by #'cddr
            collect (cons n (multiple-value-list (character-set n y))))
      #'< :key #'caddr)

=>
(("George Boole" "Q|q*Lyvo" 8) 
 ("Ada Lovelace" "Kn*Vy!vkmo" 10)
 ("Kurt Godel" "Q{xz&Mujkr" 10) 
 ("John von Neumann" "Mkyr#Qhxpdq" 11)
 ("Charles Babbage" "5Zd^eq4TSYW" 11)
 ("Grace Murray Hopper" "MiS{g &Nuvkx" 12)
 ("Neumann Janos Lajos" "QhxpMq#Odmrv" 12)
 ("John McCarthy" "e+*;h~^|.0$5" 12)
 ("Augusta Ada Byron" "q }~Knk*L$|yx" 13)
 ("Wilhelm Ackermann" "Sedh{=_gani]j" 13)
 ("Arthur John Robin Gorell Milner" "c78l+t%i2Bo,/1(5" 16)
 ("Andrei Nikolaievitch Kolmogorov" "DqgQndhlwfk#Nopjury" 19)
 ("Augusta Ada King, Countess of Lovelace" "KnUsq6M x~}p*Vy!vkmo" 20)
 ("Bertrand Arthur William Russell, 3rd Earl Russell" "&R%XL;MQovH)EVc6YWIP" 20))
CoreDump
источник
4

Brainf_ck - 723 * 12 = 8676

Я выполнил сканирование из Списка Википедии по компьютерным наукам и собрал год рождения и самые длинные имена всех людей, перечисленных там. Я написал программу, чтобы обойти все это и найти все, что я мог бы сделать на общем языке. К сожалению, я не смог найти каких - либо имен , которые могли бы поддержать echo;, alert(), console.log()(я надеюсь), printили main.

В основном я хотел поделиться своими необработанными данными сканирования, если кто-то захочет аналогичным образом искать другие языки (примечание: может быть неточным и неполным): Данные сканирования .

РЕДАКТИРОВАТЬ : Новая паста для сканирования с 40 новыми именами из Списка компьютерщиков и Списка пионеров в области компьютерных наук .

РЕДАКТИРОВАТЬ : Вручную убрал список.

Я обнаружил, что Джин Дэвид Ичбиа (1940), главный дизайнер Ады, предоставляет +-.(самый короткий из трех человек, делающих это). Я сгенерировал этот код BF для него.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------------------------------------------------------------.------------.++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++.----.+++++++++++++.------------------------------------------------------------------------------.++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++++++++++++++++.-------------.-----.--------------------------------------------------------------------.+++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++.+++++.------.+++++++.--------.+++++++.-----------------------------------------------------------------------.

Александр Киватин Дьюдни предоставил наиболее полезных персонажей BF ( +.<>), но чуть выше моего ответа. Никто не нашел при условии .[].

ККЭЗ
источник
1
Некоторые из этих данных сканирования определенно неверны. Я встретил сэра Мориса Уилкса: он был стар, но не 900 лет.
Питер Тейлор
Я взял ручную проверку и исправил некоторые из них, а также обнаружил множество дат, которые бот вообще не заметил. Впрочем, никаких новых результатов для меня не принесло.
BMac
4

Рубин 1,8 - 250 × 18 = 4500

p''<<24+48<<2+99<<9+99<<9+99<<22+89<<44<<4+28<<24/4+59<<22+88<<2+95<<22+94<<22+89<<9+99<<24/4+99<<24/4+99<<4+28<<24/4+59<<9+99<<2+99<<22+98<<2+99<<2+99<<24+94<<24/4+99<<99<<5+99<<4+28<<84/4+54<<2+95<<22+92<<2+95<<22+94<<84/4+94<<22+95<<98<<2+95<<4+29

Доступные персонажи:

'()+./24589:;<>Efp

Выход:

"Hello, Anatolii Alexeevich Karatsuba!"

Анатолий Карацуба , родившийся в 1937 году, наиболее известен своим вкладом в область аналитической теории чисел (область, которой я лично наслаждаюсь), включая алгоритм Карацубы , метод быстрого умножения произвольных операндов точности.

Это первое и единственное имя, которое я попробовал.

Примо
источник
3

GolfScript (125 * 14 = 1750)

9)99.9-&^99)).9^..)))..)~99-&.99&.99)^999)9/.(((-9-..9(/-.((9^99((.9-9-^.).9-^).)).~--999~9/.9^.((.9^99(.(.9.~-^.))..9-^))](-

Онлайн демо

Дуглас Энгельбарт (1925–2013), пожалуй, наиболее известен благодаря «Матери всех демос» . Его имя и год рождения дают символы !&(),-./9]^z{~, из которых это решение использует&()-./9]^~

Основная структура кода состоит в том, build list of numbers](-что в массив помещается множество чисел с пустой строкой, которая начинается в стеке, затем извлекается эта строка и используется с повышением типа -для преобразования массива чисел в строку.

Поскольку нет доступа к элементам ниже вершины стека, я написал программу на C #, чтобы найти короткие фрагменты, которые берут данное целое число сверху стека и добавляют следующее требуемое целое число. Это создало одну небольшую проблему, когда фрагмент кода для 69( E) закончился на -и фрагмент кода для 110( n) начался с 9: для использования длинного фрагмента для одного символа требуется один символ 110.

Питер Тейлор
источник
2

CaneCode , 458 410 * 16 = 7328 6560

11111111111111111111111111111111111111111111111111111111111111111111111184111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118111111188111841111111111111111111111111111111111111111111182222222222228331184222222222222228118111111118483322222841811111111822222828483322284111182222222222222811111111111111822222222222222811111111182222228222222281111111111118418

Соответствующий БФ:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++..+++.>++++++++++++++++++++++++++++++++++++++++++++.------------.<<++.>--------------.++.++++++++.>.<<-----.>+.++++++++.-----.-.>.<<---.>++++.-------------.++++++++++++++.--------------.+++++++++.------.-------.++++++++++++.>+.

Выходы:

Hello, Jack Elton Bresenham!

CaneCode - это просто прямая замена символов Brainfuck, где 12348соответствуют +-><.соответственно. Я потратил около 2 часов, пытаясь найти короткое имя +-.для нормального Brainfuck, но безуспешно.

Джек Элтон Брезенхэм , изобретатель линейного алгоритма Брезенхэма, родившийся в 1937 году, дает следующие символы:

o')1Ej2:54g8+9.3

К сожалению, в то время как 5( [) доступен, отсутствие 6( ]) означает, что код все еще должен был увеличивать область из 100 символов (для строчных символов) медленным способом.

Sp3000
источник
2

> <> (Рыба) , 163 * 15 = 2445

47*5+:56+7*+:42)+:4+55*66*:++66+6*o:4+::o7+:oo25*+o56+:4*o42*4*o6*7+o:7+7+7+o:o:25*7++o42*:4*o45+*o:45++o:o:6+:5+o6+o:o:25*7++o24*4*o25*7*4+o:o:2+o:27*+o42)+ooooo;

Выходы:

Hello, Ivar Hjalmar Jacobson!

Ивар Хьялмар Якобсон , родившийся в 1939 году, был найден благодаря данным сканирования BMac . Он обеспечивает символы

)*+24567:;>Gopq

> <>, как и Befunge, является языком на основе 2D-стека. Полезные команды> <>:

  • *+24567для арифметики (обратите внимание, что 47a 4и a 7помещает в стек, а не 47)
  • )больше чем (полезно для получения 1)
  • : для дублирования вершины стека
  • o для вывода
  • ; для завершения программы

pтакже хорош для размышлений, но я не смог придумать, как его использовать. >это еще одна команда> <>, направляющая поток программы вправо, но поскольку программа уже выполняется в этом направлении, она не была нужна.

Sp3000
источник