컴퓨터 과학의 선구자에게 인사


30

1942 년 또는 그 이전태어난 유명한 컴퓨터 과학자 또는 컴퓨터 과학 개척자 를 선택하십시오 (1943 년이 '첫 번째'컴퓨터 의 시작을 나타냄). 그들은 Wikipedia 페이지 또는 생년월일을 나열하고 그들의 업적이 컴퓨터 과학과 어떤 관련이 있는지를 알려주는 다른 사이트를 가져야합니다. 다른 사람과 동일하게 선택할 수 있지만 새로운 사람을 선택하는 것이 좋습니다.

그들이 일반적으로 알려진 이름을 사용하십시오. 이름과 성일 가능성이 높지만 더 일반적인 경우 약어 또는 중간 이름이 포함될 수 있습니다. 예를 들어, 위해 토니 호어 모두 Tony HoareC. A. R. Hoare허용 할 것이다.

이름의 모든 문자는 인쇄 가능한 ASCII 여야합니다 . 이름에 인쇄 할 수없는 ASCII 문자가 포함되어 있으면 근사값을 선택해도됩니다. 예를 들어, Kurt Godel대신 Kurt Gödel.

이름에서 고유 한 문자 세트 (예 C. ARHoare:)를 가져 와서 과학자의 출생 연도에 따라 인쇄 가능한 ASCII 스케일 위로 이동 ~하여 우주 에서 반복적으로 이동합니다. (기본적으로 출생 연도 modulo 95를 추가하십시오.) 그러면 인쇄 가능한 ASCII 문자의 새로운 집합이 생깁니다.

예를 들어, CAR Hoare는 1934 년에 태어 났으므로 모든 문자를 C. ARHoare1934 (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]!하여 stdout 또는 가장 가까운 대안으로 인쇄하는 프로그램을 작성하십시오 . 여기서 [name]위에서 선택한 것과 동일한 정확한 이름이 있고 프로그램 문자를 얻기 위해 이동했습니다. 세트에서 여러 문자를 사용하거나 일부를 전혀 사용하지 않을 수 있습니다. 예를 들어, 이론적 프로그램은을 PetBee($25인쇄합니다 Hello, C. A. R. Hoare!.

채점

점수는 선택한 이름의 고유 문자 수와 바이트 크기의 코드 크기입니다. 가장 아픈 것이 승리합니다.


6
예를 들어, Muḥammad ibn Mūsā al-Khwārizmī를 선택하고 합리적인 이름의 ASCII 문자를 사용 했어야합니다 (예 : Muhammad ibn Musa al-Khwarizmi).
ymbirtt

3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy. 1906 년생. 괜찮을까요?
Bill Woodger '11

2
@ BillWoodger 나는 약간 스트레칭이라고 생각합니다. Rear Admiral Grace Murray Hopper그래도 괜찮을거야 코드 크기에 이름의 고유 문자 수를 곱하면 이름이 길어질 필요는 없습니다.
Calvin 's Hobbies

5
@ Calvin'sHobbies 아 죄송합니다. 그것이 내 화면에 지저분하다고 생각했다.
저스틴

2
CAR Hoare의 형제 CDR Hoare는 어떻습니까?
David Conrad

답변:


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의 nitpick에 따라 ( 100 92 88 85 문자, 동일한 문자 세트) :

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

인쇄물 Hello, Kurt Goedel!

통역사


답변 자체에 포함시키고 기본적으로 숨길 수 있습니다.
옵티 마이저

2
Nitpick : Gödel라틴 알파벳 만 사용 하는 올바른 음역은 입니다 Goedel. ;)
Martin Ender

@Optimizer : 불면증을 사용하는 또 다른 대답이 있으므로 다른 스레드에 넣습니다.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
나는 알고 있지만 통역사와의 링크만큼 많은 공간을 차지하며 원하는 답변에 스 니펫을 계속 포함시킬 수 있습니다. 이것이 스 니펫의 목적입니다! :)
Optimizer

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 Dijkstra1930 년에 태어난을 선택했다 . 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

놀라운 , 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 코드를 형성해야했습니다. ( =33이 아닌 모든 대리석을 오른쪽으로 밀고 귀여운 고양이처럼 보이기 때문에 디플렉터로 사용 했습니다)

산출:

Hello, R Kowalski!

오래된 답변 :

놀라운 , 113 * 17 = 1921

Marbelous는 보드에서 떨어지는 대리석이 인쇄되기 때문에 2D 특성으로 인해 borad가 너무 커지지 않도록 몇 개의 숫자와 산술이 필요합니다.

사용 가능한 문자 집합으로 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 개 행은 리터럴이며, 2 개 그룹은 16 진수 값이며, 4 번째 행은 제한된 문자 세트로 인해 명시 적으로 작성할 수없는 ASCII 코드를 형성하는 산술 연산입니다.

산출:

Hello, Philip Donald Estridge!

여기서 시도해보십시오!

이제는 더 훌륭한 후보를 찾을 것입니다. 여기에서 놀라운 것이 실제로는 경쟁력이 있기 때문입니다.


이름 단축이 허용 가능한 것으로 간주되는지 확실하지 않습니다.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ 정식 이름보다는 이니셜을 사용하고 있습니다.
overactor

나는 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 이외의 다른 언어를 사용하기 위해서입니다. 256에서 오버플로되는 바이트 데이터 유형의 원래 사양 Brainfuck이 필요합니다.

+현재 셀을 늘리고 현재 셀 .을 출력하려면 두 문자 만 사용 하십시오.

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

산출

Hello, John McCarthy!

크레딧은 Coredump에게 다음과 같이 답변했습니다.

 "John McCarthy" 1927
 ("John McCarthy" "e+*;h~^|.0$5" 12)

출력에 느낌표가없는 것 같습니다!
trichoplax

1
@ githubphagocyte 감사합니다, 이제 수정되었습니다!
Level River St

도움이되어서 다행입니다.
coredump 2018

5

"안녕하세요, Niklaus Emil Wirth!" (Befunge-98, 222 × 14 = 3108)

에서 위키 백과 :

Niklaus Emil Wirth (1934 년 2 월 15 일 ~)는 스위스 컴퓨터 과학자로, 파스칼을 포함한 여러 프로그래밍 언어를 디자인하고 소프트웨어 공학의 몇 가지 고전적인 주제를 개척 한 것으로 가장 잘 알려져 있습니다. 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-93은 너비가 80 자로 제한되므로 Befunge-98로 태그가 지정됩니다.


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_외부 숫자 리터럴을 사용할 수 있다는 것을 몰랐습니다 .
Martin Ender

반복을 사용하여 얻을 수있는 수준을 확인 했습니까 2? 또는 다른 (유용한) 문자 B를 사용 5하여 $? (예 : 당신은 네 번째 공간과 함께 두 번째와 세 번째 기간에 두 번째 얻을 수 2$뿐만 아니라, A2$((.)
마틴 청산

@ 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

나는 Wikipedia의 컴퓨터 과학자 목록 에서 크롤링을 하고 거기에 나열된 모든 사람들의 출생년과 가장 긴 이름을 수집했습니다. 나는이 모든 것을 다룰 수 있고 공통 언어로 할 수있는 것을 찾는 프로그램을 작성했습니다. 슬프게도, 나는 지원할 수있는 이름을 찾을 수 없습니다 echo;, alert(), console.log()(I 희망 수), print또는 main.

다른 언어를 유사하게 검색하려는 경우를 위해 주로 원시 크롤링 데이터를 공유하고 싶었습니다 (참고 : 부정확하고 불완전 할 수 있음) : 크롤링 데이터 .

편집 : 컴퓨터 사용자의 목록컴퓨터 과학의 개척자 목록 에서 약 40 개의 새로운 이름을 가진 새로운 크롤링 붙여 넣기 .

편집 : 목록을 수동으로 정리했습니다.

나는 Ada의 수석 디자이너 인 Jean David Ichbiah (1940) 가 제공하는 것을 발견했다 +-.(3 명 중 가장 짧은 사람). 나는 그를 위해이 BF 코드를 생성했습니다.

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

Alexander Keewatin Dewdney 가 가장 유용한 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-^))](-

온라인 데모

Douglas Engelbart ( 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는 브레인 퍽의 직접적인 심볼 교체이고 12348대응하여 +-><.각각. 나는 약 2 시간 동안 짧은 이름을 찾으려고했지만 +-.성공하지 못한 채 정상적인 Brainfuck을 만들었 습니다.

Bresenham의 라인 알고리즘의 발명가이자 1937 년에 태어난 Jack Elton Bresenham 은 다음과 같은 문자를 제공합니다.

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 년생 인 Ivar Hjalmar JacobsonBMac의 크롤링 데이터 덕분에 발견되었습니다 . 그는 문자를 제공합니다

)*+24567:;>Gopq

> <>는 Befunge와 마찬가지로 2D 스택 기반 언어입니다. 유용한> <> 명령은 다음과 같습니다.

  • *+24567산술 용 ( 스택이 아닌 47a 4및 a 를 푸시 한다는 점에 유의하십시오 )747
  • )보다 큼 (얻는 데 유용함 1)
  • : 스택 상단 복제
  • o 출력용
  • ; 프로그램 종료

p또한 반성에는 좋지만, 나는 그것을 잘 사용한다고 생각할 수 없었습니다. >프로그램 흐름을 오른쪽으로 향하게하는 또 다른> <> 명령이지만 프로그램이 이미 해당 방향으로 실행되므로 필요하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.