Katakan Halo kepada Pelopor Ilmu Komputer


30

Pilih ilmuwan komputer terkenal favorit Anda atau pelopor ilmu komputer yang lahir pada tahun 1942 atau lebih awal (karena tahun 1943 menandai dimulainya penciptaan komputer 'pertama' ). Mereka harus memiliki halaman Wikipedia atau situs lain yang mencantumkan tahun kelahiran mereka dan memberi tahu bagaimana prestasi mereka terkait dengan ilmu komputer. Anda dapat memilih yang sama dengan orang lain tetapi memilih orang baru dianjurkan.

Ambil nama yang biasa mereka kenal. Ini kemungkinan besar akan menjadi nama depan dan belakang mereka tetapi mungkin termasuk singkatan atau nama tengah jika itu lebih umum. Misalnya, untuk Tony Hoare baik Tony Hoaredan C. A. R. Hoareakan diterima.

Semua karakter dalam nama harus dapat dicetak ASCII . Jika nama tersebut mengandung karakter yang tidak dapat dicetak ASCII, tidak masalah jika Anda memilih sesuatu yang mendekati. misalnya Kurt Godelbukannya Kurt Gödel.

Ambil set karakter unik dalam nama (misalnya C. ARHoare) dan geser mereka ke atas skala ASCII yang dapat dicetak pada tahun kelahiran ilmuwan Anda, berputar-putar dari ~ruang angkasa. (Pada dasarnya tambahkan tahun lahir modulo 95.) Ini akan memberi Anda (kemungkinan besar) karakter baru ASCII yang dapat dicetak.

Misalnya, CAR Hoare lahir pada tahun 1934, sehingga mengubah setiap karakter pada tahun C. ARHoare1934 (34 mod 95) memberi karakter ePBctj2$5(.

Cuplikan Stack ini akan melakukan semua pergeseran untuk Anda:

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>

Tantangan

Dengan menggunakan set ini dan hanya set ini (tanpa tab, tidak ada baris baru) dari karakter ASCII yang dapat dicetak yang digeser, tulislah sebuah program yang mencetak Hello, [name]!ke stdout atau alternatif terdekat, di mana [name]nama persis sama yang Anda pilih di atas dan bergeser untuk mendapatkan karakter program Anda. Anda dapat menggunakan beberapa karakter dari set atau tidak menggunakan sama sekali. Sebagai contoh, program teoritis PetBee($25dicetak Hello, C. A. R. Hoare!.

Mencetak gol

Skor Anda adalah ukuran kode Anda dalam byte kali jumlah karakter unik dalam nama yang Anda pilih. Sakit terendah menang.


6
Apakah saya harus memilih, misalnya, Muḥammad ibn Mūsā al-Khwārizmī, dan menggunakan fikasi ASCII yang wajar atas nama mereka, misalnya Muhammad bin Musa al-Khwarizmi, apakah itu dapat diterima?
ymbirtt

3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy. Lahir tahun 1906. Apakah itu baik-baik saja?
Bill Woodger

2
@ BillWoodger Saya pikir itu agak sulit. Saya akan baik-baik saja dengan itu Rear Admiral Grace Murray Hopper. Ingat bahwa ukuran kode Anda dikalikan dengan jumlah karakter unik dalam nama sehingga nama yang lebih panjang belum tentu lebih baik.
Calvin Hobbies

5
@ Calvin Hobby Oh oops. Pikir itu grit di layar saya.
Justin

2
Bagaimana dengan saudara laki-laki CAR Hoare, CDR Hoare?
David Conrad

Jawaban:


8

Insomnia, 103 99 98 * 8 = 784

George Boole , 1815

Semua 5 program di bawah ini memiliki panjang yang sama (98) dan output yang sama.

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

Cetakan Hello, George Boole!

Insomnia, 103 * 6 = 618 (mungkin optimal dan unik)

Jika G Boole( George Boole , 1815) dapat diterima ...

ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL

Cetakan Hello, G Boole!


Insomnia, 94 92 89 85 83 * 10 = 830

Kurt Godel, 1906.

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

Cetakan Hello, Kurt Godel!

Saya menulis sebuah program untuk mencari solusinya. Versi kedua dari program saya harus lebih dekat ke optimal daripada versi pertama saya.

Sesuai nitpick @Martin Büttner ( 100 92 88 85 karakter, set karakter yang sama):

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

Cetakan Hello, Kurt Goedel!

Penerjemah


Anda dapat memasukkannya dalam jawaban Anda sendiri dan menyembunyikannya secara default.
Pengoptimal

2
Nitpick: transliterasi yang benar Gödelhanya menggunakan alfabet Latin Goedel. ;)
Martin Ender

@Optimizer: Saya punya jawaban lain juga menggunakan Insomnia, jadi saya letakkan di utas lainnya.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
Saya tahu, tetapi itu akan menempati ruang yang sama banyaknya dengan tautan ke penerjemah dan Anda dapat tetap menyertakan cuplikan dalam jawaban apa pun yang Anda suka. Itulah tujuan cuplikan! :)
Pengoptimal

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

Uji di sini.

Saya memilih Edsger Dijkstra, lahir tahun 1930, yang memberi saya c#2&$1>b()* 3(yang saya benar-benar hanya memilih karena dia adalah yang pertama saya temukan yang namanya menghasilkan karakter yang berguna untuk CJam; Saya sudah memeriksa selusin nama sejak dan tidak ada yang tampak menjanjikan).

Kode pada dasarnya hanya membangun kode ASCII menggunakan 1, 2, 3, *, #(eksponensial) dan( , )(penurunan, selisih) dan bertobat mereka untuk karakter dengan c. Untuk menyimpan beberapa karakter, saya kadang-kadang dapat menyalin karakter sebelumnya $( 0$menyalin elemen tumpukan atas, 1$menyalin elemen tumpukan kedua-ke-atas dan sebagainya).

Berikut ini rincian kode menjadi karakter (ini juga bisa dijalankan):

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 byte * 10 = 830

Saya telah memilih R Kowalski, 1941yang memungkinkan saya untuk menggunakan:{It9A+6=53

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

Yang ini sedikit lebih kompleks daripada jawaban lama (di bawah) karena banyak kelereng melewati beberapa perangkat, semuanya marmer hanya punya beberapa hal yang ditambahkan sebelum dicetak. Karena saya tidak memiliki pengurangan atau angka yang rendah, kode ascii yang lebih rendah harus dibentuk dengan menambahkan dengan menggabungkan dua kelereng bernilai tinggi, karena ini menghasilkan modulo tambahan. (Saya telah menggunakan =3sebagai deflektor karena mendorong setiap marmer tidak sama dengan 3 ke kanan dan terlihat seperti kucing yang lucu)

keluaran:

Hello, R Kowalski!

jawaban lama:

Marbelous , 113 * 17 = 1921

Marbelous tidak apa-apa di sini, karena marmer yang jatuh dari papan akan dicetak, karena sifat 2D-nya, perlu beberapa angka + beberapa aritmatika agar borad tidak menjadi terlalu besar.

Saya telah memilih Philip D. Estridge, 1937siapa yang menghasilkan u./26EiSj9:8*-+sebagai set karakter yang tersedia. Karakter yang sebenarnya digunakan adalah.+-245689E

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

Papannya cukup sederhana, 3 baris pertama adalah literal, grup dua adalah nilai heksadesimal, baris keempat adalah operasi aritmatika untuk membentuk kode ascii yang tidak dapat dituliskan secara eksplisit karena set karakter yang terbatas.

keluaran:

Hello, Philip Donald Estridge!

Anda bisa mencobanya di sini!

Sekarang saya akan mencari kandidat yang mungkin lebih baik, karena sepertinya marbelous sebenarnya bisa bersaing di sini.


Tidak yakin apakah memperpendek nama dianggap dapat diterima.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ Saya menggunakan inisial daripada nama depan lengkap, tampaknya dibenarkan.
overactor

Saya dapat melakukannya G Booledengan 105 karakter * 6 - Saya pikir harus ada batasan pada seberapa banyak nama dapat disingkat.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

3
Program Anda sepertinya tidak akan berfungsi tanpa baris baru. Pertanyaannya secara eksplisit melarang penggunaan karakter baris baruUsing 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

Hanya untuk memiliki bahasa selain CJam. Membutuhkan spec Brainfuck asli dengan byte datatype, yang melimpah pada 256.

Hanya menggunakan 2 karakter: +untuk meningkatkan sel saat ini, dan .untuk menampilkan sel saat ini.

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

Keluaran

Hello, John McCarthy!

Penghargaan diberikan kepada Coredump karena mengungkapkan hal berikut dalam jawabannya:

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

Keluaran tampaknya tidak memiliki tanda seru!
trichoplax

1
@githubphagocyte Terima kasih, sudah diperbaiki sekarang!
Level River St

Saya senang itu membantu.
coredump

5

"Halo, Niklaus Emil Wirth!" (Befunge-98, 222 × 14 = 3108)

Dari Wikipedia :

Niklaus Emil Wirth (lahir 15 Februari 1934) adalah seorang ilmuwan komputer Swiss, terkenal karena merancang beberapa bahasa pemrograman, termasuk Pascal, dan untuk memelopori beberapa topik klasik dalam rekayasa perangkat lunak. Pada 1984 ia memenangkan Turing Award karena mengembangkan serangkaian bahasa komputer inovatif.

Dengan perubahan 34, Niklaus Emil Wirth(18 karakter, 14 unik) berakhir sebagai p,./$86Bg0,/By,57+.

Kode ( coba di sini ):

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

Kerusakan:

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)

Baris terakhir menempatkan karakter HALT ( @) di awal baris. Ketika kontrol membungkus kembali ke titik ini, program akan berhenti. Ini sebenarnya tidak perlu, karena @karakter di (5,0) masih ada dan tidak ada yang harus dihasilkan sebelum tercapai. Namun, satu-satunya juru bahasa Befunge online yang akan menjalankan monstrositas ini tidak akan berfungsi tanpa itu.

Hal ini sebenarnya mungkin untuk membuat solusi bekerja dengan hanya Niklaus Wirth(12 chars unik, p,./$86By,57+), tetapi kode ini banyak, banyak lagi.

(Ditandai sebagai Befunge-98 karena Befunge-93 terbatas pada lebar 80 karakter.)


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

Keluaran:

Hello, C. A. R. Hoare!

CJam, 662 byte * 10 = 6620 8700

Bukan untuk menang tetapi hanya karena itu terlihat mungkin. Hanya digunakan 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

Keluaran:

Hello, C. A. R. Hoare!

Generator

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

Jawaban sepele 222(((((((((((c(dihasilkan oleh q{i222_@-'(*'c}%) memiliki 3420 byte.


Wow saya tidak tahu Anda bisa menggunakan e_angka literal luar.
Martin Ender

Sudahkah Anda memeriksa seberapa rendah yang bisa Anda dapatkan dengan menggunakan pengulangan 2? Atau dengan menggunakan karakter (berguna) lainnya B, 5dan $? (Misalnya, Anda bisa mendapatkan ruang kedua hingga keempat dan periode kedua dan ketiga dengan 2$, serta Adengan 2$((.)
Martin Ender

@ MartinBüttner Mencoba bermain golf sedikit dengan tangan. Tapi sepertinya terlalu rumit. Mungkin saya akan menulis program untuk melakukannya nanti. Tapi ini tidak akan menang.
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

Menampilkan:

Hello, Arthur John Robin Gorell Milner!

Ini adalah jawaban pertama saya menggunakan CJam, jadi pasti ini bisa bermain golf lebih baik (ada isyarat selamat datang).


Berikut adalah beberapa kode utilitas yang saya gunakan. Karena saya menghitung set karakter untuk beberapa nama lain, ini mungkin berguna untuk seseorang yang lebih tahu CJam (atau mungkin untuk bahasa lain).

  • Temukan set karakter, bersama dengan jumlah karakter unik
(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)))))
  • Tentukan daftar tokoh terkenal
(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))
  • Hitung set karakter yang dapat dicetak yang diizinkan, urutkan berdasarkan ukuran set
(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

Saya melakukan penjelajahan dari Daftar ilmuwan komputer Wikipedia dan mengumpulkan tahun kelahiran dan nama terpanjang dari semua orang yang terdaftar di sana. Saya menulis sebuah program untuk membahas semua ini dan menemukan apa yang bisa saya lakukan dalam bahasa yang sama. Sayangnya, saya tidak dapat menemukan nama-nama setiap yang bisa mendukung echo;, alert(), console.log()(aku bisa berharap), printataumain .

Saya terutama ingin membagikan data penjelajahan mentah saya jika ada orang yang ingin mencari bahasa lain dengan cara yang sama (catatan: mungkin tidak akurat dan tidak lengkap): Data Perayapan .

EDIT : Tempel perayapan baru dengan sekitar 40 nama baru dari Daftar orang komputasi dan Daftar pelopor dalam ilmu komputer .

EDIT : Secara manual membersihkan daftar.

Saya memang menemukan bahwa Jean David Ichbiah (1940), kepala desainer Ada, menyediakan +-.(yang terpendek dari tiga orang untuk melakukannya). Saya membuat kode BF ini untuknya.

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

Alexander Keewatin Dewdney memberikan karakter BF paling berguna ( +.<>), tetapi muncul sedikit di atas jawaban saya. Tidak ada yang saya temukan disediakan .[].


1
Beberapa data perayapan itu jelas salah. Saya bertemu Sir Maurice Wilkes: dia sudah tua, tetapi belum 900 tahun.
Peter Taylor

Saya mengambil melewati manual dan memperbaiki beberapa dari mereka, dan juga menemukan banyak tanggal bahwa bot tidak mengambil sama sekali. Namun, tidak memunculkan hasil baru bagi saya.
BMac

4

Ruby 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

Karakter yang tersedia:

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

Keluaran:

"Hello, Anatolii Alexeevich Karatsuba!"

Anatolii Karatsuba , lahir 1937, paling terkenal karena kontribusinya di bidang teori bilangan analitik (bidang yang saya nikmati secara pribadi), termasuk Algoritma Karatsuba , sebuah metode untuk penggandaan cepat operan presisi sewenang-wenang.

Ini adalah nama pertama dan satu-satunya yang saya coba.


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

Demo online

Douglas Engelbart (1925 - 2013) mungkin paling terkenal dengan "Mother of All Demos" . Nama dan tahun kelahirannya memberikan karakter !&(),-./9]^z{~, yang digunakan solusi ini&()-./9]^~

Struktur dasar dari kode adalah build list of numbers](-yang menempatkan banyak angka dalam array dengan string kosong yang dimulai pada stack, kemudian menarik string itu dan menggunakannya dengan promosi tipe -untuk mengubah array angka menjadi string.

Karena tidak ada akses ke elemen di bawah bagian atas tumpukan saya menulis program C # untuk menemukan potongan pendek yang mengambil bilangan bulat yang diberikan di bagian atas tumpukan dan menambahkan bilangan bulat berikutnya yang diperlukan. Ini menciptakan satu masalah kecil, ketika cuplikan untuk 69( E) diakhiri dengan -dan cuplikan untuk 110( n) dimulai dengan 9: biayanya satu arang untuk menggunakan cuplikan yang lebih panjang untuk 110.


2

CaneCode , 458 410 * 16 = 7328 6560

11111111111111111111111111111111111111111111111111111111111111111111111184111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118111111188111841111111111111111111111111111111111111111111182222222222228331184222222222222228118111111118483322222841811111111822222828483322284111182222222222222811111111111111822222222222222811111111182222228222222281111111111118418

BF yang sesuai:

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

Output:

Hello, Jack Elton Bresenham!

CaneCode hanyalah pengganti simbol langsung dari Brainfuck, di mana masing 12348- +-><.masing sesuai . Saya menghabiskan sekitar 2 jam mencoba mencari nama pendek yang memberikan +-.Brainfuck normal, tanpa hasil.

Jack Elton Bresenham , penemu algoritma garis Bresenham dan lahir tahun 1937, memberikan karakter berikut:

o')1Ej2:54g8+9.3

Sayangnya, ketika 5( [) tersedia, kurangnya 6( ]) berarti bahwa kode masih harus menambah area 100-ish (untuk karakter huruf kecil) dengan cara lambat.


2

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

Output:

Hello, Ivar Hjalmar Jacobson!

Ivar Hjalmar Jacobson , lahir 1939, ditemukan berkat data penjelajahan BMac . Dia menyediakan chars

)*+24567:;>Gopq

> <>, seperti Befunge, adalah bahasa berbasis stack 2D. Perintah yang berguna> <> adalah:

  • *+24567untuk aritmatika (catatan yang 47mendorong a 4dan a 7di stack, bukan 47)
  • )untuk lebih dari (berguna untuk mendapatkan 1)
  • : untuk menduplikasi bagian atas tumpukan
  • o untuk output
  • ; untuk penghentian program

pjuga baik untuk refleksi, tetapi saya tidak dapat memikirkan penggunaan yang baik untuk itu. >adalah perintah lain> <>, mengarahkan aliran program ke kanan, tetapi karena program sudah dijalankan ke arah itu, itu tidak diperlukan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.