Скажіть привіт піонерам інформатики


30

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

Візьміть ім’я, яке вони широко знають. Швидше за все, це буде їх ім'я та прізвище, але вони можуть містити абревіатури та прізвища, якщо це є більш поширеним. Наприклад, для Тоні Хоара і те, Tony Hoareі інше C. A. R. Hoareбуло б прийнятним.

Усі символи в імені повинні бути надруковані ASCII . Якщо ім'я містить символи, які не можна друкувати ASCII, це добре, якщо ви виберете щось приблизне. наприклад Kurt Godelзамість Kurt Gödel.

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

Наприклад, CAR CAR Hoare народився в 1934 році, тому зміна кожного персонажа C. ARHoareдо 1934 року (34 мод 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]!до stdout або найближчої альтернативи, де [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
Що з братом ЦАР Хоара, 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!

Перекладач


Ви можете включити його у свою відповідь і приховати за замовчуванням.
Оптимізатор

2
Нітпік: правильна транслітерація Gödelвикористання лише латинського алфавіту Goedel. ;)
Мартін Ендер

@Optimizer: У мене є ще одна відповідь, що використовується Insomnia, тому я ставлю її в іншій темі.
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 рік

Марбелус тут гаразд, оскільки коли-небудь мармур, який випадає з дошки, надруковується, однак завдяки його 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!

Ви можете спробувати тут!

Зараз я буду шукати можливого кращого кандидата, оскільки, схоже, марбельний може насправді бути конкурентним.


Не впевнений, чи скорочення назви вважається прийнятним.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ Я використовую початкове, а не повне ім’я, видається виправданим.
суперактор

Я можу зробити G Boole105 символів * 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)

Здається, на виході відсутній знак оклику!
трихоплакс

1
@githubphagocyte Дякую, це виправлено зараз!
Рівень річки Св.

Я радий, що це допомогло.
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 байт.


Нічого собі, я не знав, що ти можеш використовувати 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))

4

Brainf_ck - 723 * 12 = 8676

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

Я головним чином хотів поділитися своїми необробленими даними сканування, якщо хтось захоче аналогічно шукати інші мови (зверніть увагу: можуть бути неточними та неповними): Дані сканування .

EDIT : Нова паста для сканування з приблизно 40 новими іменами зі списку людей, які працюють з обчисленнями та списку піонерів інформатики .

EDIT : очищення списку вручну.

Я виявив, що Жан Девід Іхбія (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

Відповідний BF:

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

Виходи:

Hello, Jack Elton Bresenham!

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

Джек Елтон Брезенхем , винахідник алгоритму лінійки Брезенхема і 1937 року народження, дає такі символи:

o')1Ej2:54g8+9.3

На жаль, хоча 5( [) доступний, відсутність 6( ]) означає, що код все-таки повинен був збільшити область 100-іш (для малих знаків) повільним шляхом.


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, є двовимірною мовою на основі стека. Корисні команди <<>:

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

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

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