Xin chào các bạn tiên phong về khoa học máy tính


30

Chọn nổi tiếng yêu thích của bạn hoặc khoa học máy tính khoa học máy tính tiên phong người được sinh ra vào năm 1942 hoặc sớm hơn (như năm 1943 đánh dấu sự khởi đầu của việc tạo ra các máy tính 'đầu tiên' ). Họ nên có một trang Wikipedia hoặc trang web khác liệt kê năm sinh của họ và cho biết những thành tựu của họ liên quan đến khoa học máy tính như thế nào. Bạn có thể chọn giống như người khác nhưng chọn người mới được khuyến khích.

Lấy một cái tên họ thường được biết đến bởi. Đây rất có thể sẽ là tên và họ của họ nhưng nó có thể bao gồm chữ viết tắt hoặc tên đệm nếu đó là phổ biến hơn. Ví dụ, đối với Tony Hoare cả Tony HoareC. A. R. Hoaresẽ được chấp nhận.

Tất cả các ký tự trong tên phải được in ASCII . Nếu tên chứa các ký tự không thể in ASCII thì không sao nếu bạn chọn thứ gì đó gần đúng. ví dụ Kurt Godelthay vì Kurt Gödel.

Lấy tập hợp các ký tự duy nhất trong tên (ví dụ C. ARHoare) và chuyển chúng lên thang ASCII có thể in theo năm sinh của nhà khoa học của bạn, lặp đi lặp lại từ ~không gian. (Về cơ bản thêm modulo năm sinh 95.) Điều này sẽ cung cấp cho bạn một bộ ký tự ASCII có thể in mới (rất có thể).

Ví dụ, CAR Hoare sinh năm 1934, do đó, thay đổi mọi nhân vật trong C. ARHoarenăm 1934 (34 mod 95) nhân vật đưa ra ePBctj2$5(.

Đoạn trích này sẽ thực hiện tất cả các thay đổi cho bạn:

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>

Thử thách

Sử dụng bộ này và chỉ bộ này (không có tab, không có dòng mới) các ký tự ASCII có thể in được dịch chuyển, viết chương trình in Hello, [name]!ra thiết bị xuất chuẩn hoặc thay thế gần nhất, trong đó [name]có cùng tên chính xác mà bạn đã chọn ở trên và được dịch chuyển để lấy các ký tự chương trình của bạn. Bạn có thể sử dụng nhiều ký tự từ bộ hoặc hoàn toàn không sử dụng một số ký tự. Ví dụ, chương trình lý thuyết PetBee($25in Hello, C. A. R. Hoare!.

Chấm điểm

Điểm của bạn là kích thước mã của bạn tính bằng byte nhân với số ký tự duy nhất trong tên bạn chọn. Đau thấp nhất sẽ thắng.


6
Tôi đã chọn, ví dụ, Muḥammad ibn Mūsā al-Khwārizm, và sử dụng một danh hiệu ASCII hợp lý của tên của họ, ví dụ Muhammad ibn Musa al-Khwarizmi, điều đó có được chấp nhận không?
ymbirtt

3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy. Sinh năm 1906. Điều đó có ổn không?
Bill Woodger

2
@BillWoodger Tôi nghĩ đó là một chút căng. Tôi sẽ ổn với Rear Admiral Grace Murray Hoppermặc dù. Hãy nhớ rằng kích thước mã của bạn được nhân với số lượng ký tự duy nhất trong tên để tên dài hơn không nhất thiết phải tốt hơn.
Sở thích của Calvin

5
@ Calvin'sHob sở thích Oh oops. Nghĩ rằng đó là grit trên màn hình của tôi.
Justin

2
Còn anh trai của CAR Hoare, CDR Hoare thì sao?
David Conrad

Câu trả lời:


8

Mất ngủ, 103 99 98 * 8 = 784

George Boole , 1815

Tất cả 5 chương trình dưới đây có cùng độ dài (98) và cùng một đầu ra.

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

Bản in Hello, George Boole!

Mất ngủ, 103 * 6 = 618 (có thể là tối ưu và duy nhất)

Nếu G Boole( George Boole , 1815) được chấp nhận ...

ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL

Bản in Hello, G Boole!


Mất ngủ, 94 92 89 85 83 * 10 = 830

Kurt Godel, 1906.

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

Bản in Hello, Kurt Godel!

Tôi đã viết một chương trình để tìm kiếm giải pháp. Phiên bản thứ hai của chương trình nên gần tối ưu hơn phiên bản đầu tiên của tôi.

Theo nitpick của @Martin Büttner ( 100 92 88 85 ký tự, cùng một bộ ký tự):

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

Bản in Hello, Kurt Goedel!

Thông dịch viên


Bạn có thể đưa nó vào câu trả lời của mình và ẩn nó theo mặc định.
Tối ưu hóa

2
Nitpick: phiên âm chính xác của Gödelviệc chỉ sử dụng bảng chữ cái Latinh là Goedel. ;)
Martin Ender

@Optimizer: Tôi cũng có một câu trả lời khác là sử dụng Mất ngủ, vì vậy tôi đặt nó trên chủ đề khác.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
Tôi biết, nhưng nó sẽ chiếm nhiều không gian như liên kết đến trình thông dịch và bạn có thể giữ cả đoạn trích trong bất kỳ câu trả lời nào bạn muốn. Đó là mục đích của đoạn trích! :)
Tối ưu hóa

15

CJam, 230 117 115 114 113 110 107 106 byte * 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

Kiểm tra nó ở đây.

Tôi đã chọn Edsger Dijkstra, sinh năm 1930, đưa cho tôi c#2&$1>b()* 3(người mà tôi thực sự chỉ chọn vì anh ấy là người đầu tiên tôi tìm thấy có tên mang lại các ký tự hữu ích cho CJam; tôi đã kiểm tra hàng tá tên kể từ đó và không có gì hứa hẹn).

Mã này về cơ bản chỉ là xây dựng các mã ASCII sử dụng 1, 2, 3, *, #(lũy thừa) và (, )(sụt lần, increment) và chuyển đổi chúng thành một nhân vật với c. Để lưu một số ký tự, đôi khi tôi có thể sao chép một ký tự trước đó bằng $( 0$sao chép phần tử ngăn xếp trên cùng, 1$sao chép phần tử ngăn xếp thứ hai lên trên, v.v.).

Dưới đây là phân tích mã thành các ký tự (điều này cũng có thể chạy được):

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

Đáng tin cậy , 83 byte * 10 = 830

Tôi đã chọn R Kowalski, 1941cho phép tôi sử dụng:{It9A+6=53

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

Câu hỏi này phức tạp hơn một chút so với câu trả lời cũ (bên dưới) vì nhiều viên bi đi qua nhiều thiết bị, tất cả trong hầu hết các viên bi chỉ có một vài thứ được thêm vào trước khi được in. Bởi vì tôi không có phép trừ hoặc số thấp, mã ascii thấp hơn phải được hình thành bằng cách thêm bằng cách hợp nhất hai viên bi có giá trị cao, vì điều này dẫn đến việc bổ sung modulo. (Tôi đã sử dụng =3làm bộ làm lệch hướng vì nó đẩy mỗi viên bi không bằng 3 sang phải và trông giống như một con mèo dễ thương)

đầu ra:

Hello, R Kowalski!

câu trả lời cũ:

Đáng tin , 113 * 17 = 1921

Marbelous không sao ở đây, vì bao giờ đá cẩm thạch rơi ra khỏi bảng được in, vì bản chất 2D của nó, nó cần một vài chữ số + một số số học để không làm cho borad trở nên quá lớn.

Tôi đã chọn Philip D. Estridge, 1937người mang lại u./26EiSj9:8*-+là bộ ký tự có sẵn. Các ký tự thực sự được sử dụng là.+-245689E

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

Bảng này khá đơn giản, 3 hàng đầu tiên là chữ, bao giờ nhóm hai là giá trị thập lục phân, hàng thứ tư là các phép toán số học để tạo thành mã ascii không thể viết rõ ràng vì bộ ký tự giới hạn.

đầu ra:

Hello, Philip Donald Estridge!

Bạn có thể thử nó ở đây!

Bây giờ tôi sẽ tìm kiếm một ứng cử viên tốt hơn có thể, vì có vẻ như sự kỳ diệu thực sự có thể cạnh tranh ở đây.


Không chắc chắn liệu rút ngắn tên được chấp nhận.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ Tôi đang sử dụng tên ban đầu thay vì tên đầy đủ, có vẻ hợp lý.
overactor

Tôi có thể làm G Boolevới 105 ký tự * 6 - Tôi nghĩ nên có giới hạn về số lượng tên có thể rút ngắn.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

3
Chương trình của bạn dường như không hoạt động mà không có dòng mới. Câu hỏi rõ ràng không cho phép sử dụng ký tự dòng mớiUsing 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

Chỉ cần có một ngôn ngữ khác ngoài CJam. Yêu cầu thông số kỹ thuật ban đầu Brainfuck với kiểu dữ liệu byte, tràn ra ở mức 256.

Chỉ sử dụng 2 ký tự: +để tăng ô hiện tại và .để xuất ô hiện tại.

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

Đầu ra

Hello, John McCarthy!

Tín dụng đến Coredump vì đã tiết lộ những điều sau đây trong câu trả lời của mình:

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

Đầu ra dường như thiếu một dấu chấm than!
trichoplax

1
@githubphagocyte Cảm ơn, giờ nó đã được sửa!
Cấp sông St

Tôi rất vui vì nó đã giúp.
coredump

5

"Xin chào, Niklaus Emil Wirth!" (Befunge-98, 222 × 14 = 3108)

Từ Wikipedia :

Niklaus Emil Wirth (sinh ngày 15 tháng 2 năm 1934) là một nhà khoa học máy tính người Thụy Sĩ, nổi tiếng với việc thiết kế một số ngôn ngữ lập trình, bao gồm Pascal, và tiên phong trong một số chủ đề kinh điển trong công nghệ phần mềm. Năm 1984, ông đã giành được giải thưởng Turing vì đã phát triển một chuỗi các ngôn ngữ máy tính sáng tạo.

Với sự thay đổi 34, Niklaus Emil Wirth(18 ký tự, 14 ký tự duy nhất) kết thúc là p,./$86Bg0,/By,57+.

Mã ( thử nó ở đây ):

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

Phá vỡ:

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)

Dòng cuối cùng đặt một ký tự HALT ( @) ở đầu dòng. Khi điều khiển kết thúc trở lại điểm này, chương trình sẽ dừng lại. Điều này thực sự không cần thiết, bởi vì @ký tự ở (5,0) vẫn còn đó và không có gì nên xuất ra trước khi đạt được. Tuy nhiên, trình thông dịch Befunge trực tuyến duy nhất sẽ chạy tính quái dị này sẽ không hoạt động bình thường nếu không có nó.

Đó thực sự có thể làm cho một giải pháp làm việc chỉ với Niklaus Wirth(12 ký tự độc đáo, p,./$86By,57+), nhưng mã là nhiều, nhiều nữa.

(Được gắn thẻ là Befunge-98 vì Befunge-93 bị giới hạn ở chiều rộng 80 ký tự.)


4

CJam, 323 byte * 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

Đầu ra:

Hello, C. A. R. Hoare!

CJam, 662 byte * 10 = 6620 8700

Không phải để giành chiến thắng mà chỉ vì nó có thể. Nó chỉ được sử dụng 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

Đầu ra:

Hello, C. A. R. Hoare!

Máy phát điện

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

Câu trả lời tầm thường 222(((((((((((c(được tạo bởi q{i222_@-'(*'c}%) có 3420 byte.


Wow tôi không biết bạn có thể sử dụng e_chữ số bên ngoài.
Martin Ender

Bạn đã kiểm tra mức độ thấp của bạn có thể nhận được bằng cách sử dụng sự lặp lại của 2? Hoặc bằng cách sử dụng các ký tự (hữu ích) khác B, 5$? (Ví dụ: bạn có thể có được không gian thứ hai đến thứ tư và giai đoạn thứ hai và thứ ba với 2$, cũng như Avới 2$((.)
Martin Ender

@ MartinBüttner Đã thử chơi golf một chút bằng tay. Nhưng nó có vẻ quá phức tạp. Có lẽ tôi sẽ viết một chương trình để làm điều đó sau. Nhưng dù sao điều này sẽ không chiến thắng.
jimmy23013

4

Camam, 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

Hiển thị:

Hello, Arthur John Robin Gorell Milner!

Đây là câu trả lời đầu tiên của tôi khi sử dụng CJam, vì vậy chắc chắn điều này có thể chơi golf tốt hơn (bất kỳ gợi ý nào đều được chào đón).


Đây là một số mã tiện ích tôi đã sử dụng. Vì tôi đã tính toán bộ ký tự cho một số tên khác, điều này có thể hữu ích cho những người hiểu rõ hơn về CJam (hoặc có thể cho ngôn ngữ khác).

  • Tìm bộ ký tự, cùng với số lượng ký tự duy nhất
(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)))))
  • Xác định danh sách các nhân vật nổi tiếng
(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))
  • Tính toán các bộ ký tự có thể in được, sắp xếp theo kích thước của bộ
(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

Tôi đã thu thập dữ liệu từ Danh sách các nhà khoa học máy tính của Wikipedia và thu thập các tên khai sinh và tên dài nhất của tất cả những người được liệt kê ở đó. Tôi đã viết một chương trình để chạy trên tất cả những thứ này và tìm thấy bất kỳ điều gì tôi có thể làm bằng một ngôn ngữ chung. Đáng buồn thay, tôi đã không thể tìm thấy bất kỳ tên có thể hỗ trợ echo;, alert(), console.log()(tôi có thể hy vọng), printhoặc main.

Tôi chủ yếu muốn chia sẻ dữ liệu thu thập dữ liệu thô của mình trong trường hợp bất kỳ ai muốn tìm kiếm các ngôn ngữ khác tương tự (lưu ý: có thể không chính xác và không đầy đủ): Thu thập dữ liệu .

EDIT : Dán thu thập thông tin mới với khoảng 40 tên mới từ Danh sách người tính toánDanh sách người tiên phong trong khoa học máy tính .

EDIT : Làm sạch danh sách bằng tay.

Tôi đã tìm thấy rằng Jean David Ichbiah (1940), nhà thiết kế chính của Ada, cung cấp +-.(ngắn nhất trong ba người để làm như vậy). Tôi đã tạo mã BF này cho anh ta.

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

Alexander Keewatin Dewdney cung cấp các ký tự BF có thể sử dụng nhiều nhất ( +.<>), nhưng đến hơi cao hơn câu trả lời của tôi. Không ai tìm thấy tôi cung cấp .[].


1
Một số dữ liệu thu thập dữ liệu đó chắc chắn là sai. Tôi đã gặp Ngài Maurice Wilkes: ông đã già, nhưng không phải 900 tuổi.
Peter Taylor

Tôi đã thực hiện một thủ công thông qua và sửa một số trong số đó, và cũng tìm thấy rất nhiều ngày mà bot không nhận được. Mặc dù vậy, không mang lại bất kỳ kết quả mới nào cho tôi.
BMac

4

Hồng ngọc 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

Nhân vật có sẵn:

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

Đầu ra:

"Hello, Anatolii Alexeevich Karatsuba!"

Anatolii Karatsuba , sinh năm 1937, được biết đến nhiều nhất nhờ những đóng góp của ông trong lĩnh vực lý thuyết số phân tích (một lĩnh vực mà cá nhân tôi rất thích), bao gồm Thuật toán Karatsuba , một phương pháp nhân nhanh các toán hạng chính xác tùy ý.

Đây là tên đầu tiên và duy nhất tôi đã thử.


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-^))](-

Bản demo trực tuyến

Douglas Engelbart (1925 - 2013) có lẽ nổi tiếng nhất với "Mẹ của tất cả các vị thần" . Tên và năm sinh của anh ta cho các ký tự !&(),-./9]^z{~, trong đó giải pháp này sử dụng&()-./9]^~

Cấu trúc cơ bản của mã là build list of numbers](-đặt rất nhiều số trong một mảng với chuỗi rỗng bắt đầu trên ngăn xếp, sau đó kéo ra chuỗi đó và sử dụng nó với kiểu quảng cáo -để biến mảng số thành chuỗi.

Vì không có quyền truy cập vào các phần tử bên dưới đỉnh của ngăn xếp, tôi đã viết chương trình C # để tìm các đoạn ngắn lấy một số nguyên cho trước trên đỉnh của ngăn xếp và thêm số nguyên tiếp theo cần thiết. Điều này tạo ra một vấn đề nhỏ, khi đoạn trích cho 69( E) kết thúc -và đoạn trích cho 110( n) bắt đầu bằng 9: nó tốn một char để sử dụng đoạn trích dài hơn 110.


2

Mía , 458 410 * 16 = 7328 6560

11111111111111111111111111111111111111111111111111111111111111111111111184111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118111111188111841111111111111111111111111111111111111111111182222222222228331184222222222222228118111111118483322222841811111111822222828483322284111182222222222222811111111111111822222222222222811111111182222228222222281111111111118418

BF tương ứng:

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

Đầu ra:

Hello, Jack Elton Bresenham!

CaneCode chỉ là sự thay thế biểu tượng trực tiếp của Brainfuck, 12348tương ứng với +-><.. Tôi đã dành khoảng 2 giờ để cố gắng tìm kiếm một cái tên ngắn +-.cho Brainfuck bình thường, nhưng không thành công.

Jack Elton Bresenham , người phát minh ra thuật toán dòng của Bresenham và sinh năm 1937, đưa ra các ký tự sau:

o')1Ej2:54g8+9.3

Thật không may, trong khi 5( [) có sẵn, việc thiếu 6( ]) có nghĩa là mã vẫn phải tăng lên khu vực 100 ish (đối với ký tự chữ thường) theo cách chậm.


2

> <> (Cá) , 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;

Đầu ra:

Hello, Ivar Hjalmar Jacobson!

Ivar Hjalmar Jacobson , sinh năm 1939, được tìm thấy nhờ dữ liệu thu thập dữ liệu của BMac . Ông cung cấp các ký tự

)*+24567:;>Gopq

> <>, giống như Befunge, là ngôn ngữ dựa trên ngăn xếp 2D. Các lệnh> <> hữu ích là:

  • *+24567đối với số học (lưu ý rằng 47đẩy a 4và a 7trên ngăn xếp, không 47)
  • )cho lớn hơn (hữu ích để có được 1)
  • : để nhân đôi đỉnh của ngăn xếp
  • o cho đầu ra
  • ; chấm dứt chương trình

pcũng tốt cho sự phản ánh, nhưng tôi không thể nghĩ ra cách sử dụng tốt cho nó. >là một lệnh> <> khác, điều khiển luồng chương trình đi thẳng, nhưng vì chương trình đã thực thi theo hướng đó nên không cần thiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.