Bilgisayar Biliminin Öncülerine Merhaba Deyin


30

En sevdiğiniz ünlü bilgisayar bilimcisi ya Seç bilgisayar bilimi öncüsü oldu 1942 veya daha önceki doğumlu (1943 işaretleri yaratılması başlangıcı olarak 'ilk' bilgisayara ). Doğum yıllarını listeleyen bir Vikipedi sayfasına veya başka bir siteye sahip olmaları ve başarılarının bilgisayar bilimleriyle nasıl ilişkili olduğunu anlatmaları gerekir. Başka biriyle aynı şeyi seçebilirsiniz, ancak yeni birini seçmek teşvik edilir.

Yaygın olarak bilinen bir isim alın. Bu büyük olasılıkla onların adı ve soyadı olacak, fakat eğer daha yaygınsa kısaltmalar veya ikinci isimler içerebilir. Örneğin, için , Tony Hoare hem Tony Hoareve C. A. R. Hoarekabul edilebilir olacaktır.

Addaki tüm karakterlerin ASCII yazdırılabilir olması gerekir . Ad, yazdırılamayan ASCII olmayan karakterler içeriyorsa, yaklaşık bir şey seçerseniz sorun yoktur. örneğin Kurt Godelyerine Kurt Gödel.

Adındaki benzersiz karakter kümesini alın (örn. C. ARHoare) Ve onları, bilim adamınızın doğum yılına kadar yazdırılabilir ASCII ölçeğine yükselterek, çevreden ~uzaya dolaştırın . (Temelde, doğum yılı modulo 95'i ekleyin.) Bu size (muhtemelen) yeni bir yazdırılabilir ASCII karakter seti verecektir.

Örneğin, 1934 doğumlu CAR Hoare, 1934 yılında her karakteri değiştirerek C. ARHoare(34 mod 95) karakter verir ePBctj2$5(.

Bu Yığın Parçacığı tüm kaymaları sizin için yapacak:

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>

Meydan okuma

Bu seti ve yalnızca değiştirilen yazdırılabilir ASCII karakterlerinin bu dizisini (sekme yok, yeni satır yok) kullanarak, yukarıda seçtiginiz ve program karakterlerinizi almak için kaydırdığınız aynı adın Hello, [name]!bulunduğu stdout'a veya en yakın alternatife yazdırılan bir program [name]yazın. Kümeden birden çok karakter kullanabilir veya hiç kullanmayabilirsiniz. Örneğin, teorik program PetBee($25yazdırır Hello, C. A. R. Hoare!.

puanlama

Puanınız, bayt cinsinden kod büyüklüğünüzdür, seçtiğiniz addaki benzersiz karakterlerin sayısıdır. En düşük boğaz kazanır.


6
Mesela Muḥammad ibn Mūsā al-Khwārizmī'i seçip, isimlerinin makul bir ASCII-fikasyonunu kullanmalı mıydım, mesela Muhammed ibn Musa al-Khwarizmi, bu kabul edilebilir mi?
ymbirtt 21:14

3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy. 1906 doğumlu. Bu iyi mi?
Bill Woodger 21:14

2
@ BillWoodger Ben biraz gergin olduğunu düşünüyorum. Rear Admiral Grace Murray HopperYine de iyi olurum . Kod boyutunuzun addaki benzersiz karakter sayısı ile çarpıldığını, bu nedenle daha uzun bir adın mutlaka daha iyi olmadığını unutmayın.
Calvin'in Hobileri

5
@ Calvin's Hobbies Ah ayy. Ekranımda kum olduğunu sanıyordum.
Justin

2
Peki ya CAR Hoare'in kardeşi CDR Hoare?
David Conrad

Yanıtlar:


8

Uykusuzluk, 103 99 98 * 8 = 784

George Boole , 1815

Aşağıdaki 5 program da aynı uzunluğa (98) ve aynı çıktıya sahiptir.

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

Baskılar Hello, George Boole!

Uykusuzluk, 103 * 6 = 618 (muhtemelen optimal ve benzersiz)

Eğer G Boole( George Boole , 1815) kabul edilebilirse ...

ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL

Baskılar Hello, G Boole!


Uykusuzluk, 94 92 89 85 83 * 10 = 830

Kurt Godel, 1906.

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

Baskılar Hello, Kurt Godel!

Çözüm aramak için bir program yazdım. Programın ikinci versiyonum ilk versiyonumdan daha yakın olmalı.

Martin Büttner’ın nitpick’ine göre ( 100 92 88 85 karakter, aynı karakter kümesi):

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

Baskılar Hello, Kurt Goedel!

yorumlayıcı


Cevabınıza ekleyebilir ve varsayılan olarak gizleyebilirsiniz.
Doktor

2
Nitpick: GödelSadece Latin alfabesini kullanarak doğru çevirisi Goedel. ;)
Martin Ender

@Optimizer: Insomnia kullanarak da başka bir cevabım var, bu yüzden diğer konuya koydum.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
Biliyorum, ancak tercümanın bağlantısı kadar alan kaplayacak ve pasajı istediğiniz herhangi bir cevaba dahil etmeye devam edebilirsiniz. Snippet'lerin amacı budur! :)
Doktor

15

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

Burada test et.

Ben Edsger Dijkstra, 1930 doğumlu, bana verdi c#2&$1>b()* 3(kim gerçekten seçtim, çünkü ismi CJam için yararlı karakterler üreten ilk kişi o;

Kod temelde sadece kullanarak ASCII kodları oluşturur 1, 2, 3, *, #(üs) ve (, )bir karaktere (eksiltme, artım) ve dönüşürse onları c. Bazı karakterleri kaydetmek için bazen daha önceki bir karakteri kopyalayabilirim $( 0$üst yığın öğesini 1$kopyalar, ikinci üste yığın öğesini vb. Kopyalar).

İşte kodun karakterlere bölünmesi (bu da çalıştırılabilir):

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

Mermer , 83 bayt * 10 = 830

R Kowalski, 1941Hangisini kullanmama izin verdiğimi seçtim :{It9A+6=53

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

Bu birincisi eski cevaplardan biraz daha karmaşıktır (aşağıda) çünkü pek çok mermer birden fazla cihazdan geçiyor, hepsinde mermerlerin hepsi basılmadan önce bunlara eklenen birkaç şey var. Çıkarma veya düşük sayılar olmadığından, düşük ascii kodları iki yüksek değerli mermerin birleştirilmesiyle oluşturulmak zorunda kalıyordu, çünkü bu modulo eklenmesiyle sonuçlanıyordu. ( =3Her mermeri sağa 3'e eşit olmayan ve sevimli bir kedi gibi göründüğü için saptırıcı olarak kullandım )

çıktı:

Hello, R Kowalski!

eski cevap:

Mermer , 113 * 17 = 1921

Marbelous burada sorun yok, çünkü tahtadan düşen mermer basıldığında, 2B yapısı nedeniyle, borad'ın çok büyük olmasına izin vermemek için birkaç rakam + bazı aritmetiklere ihtiyaç duyuyor.

Kullanılabilir karakter kümesi olarak Philip D. Estridge, 1937kim verimi seçtim u./26EiSj9:8*-+. Gerçekten kullanılan karakterler.+-245689E

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

Kart oldukça basittir, ilk 3 satır hazır bilgidir, her iki grubun onaltılık bir değer olduğu, dördüncü satırın sınırlı karakter kümeleri nedeniyle açıkça yazılamayan ascii kodları oluşturmak için aritmetik işlemlerdir.

çıktı:

Hello, Philip Donald Estridge!

Burada deneyebilirsiniz!

Şimdi daha iyi bir aday arayacağım çünkü burası gerçekten rekabetçi görünüyor olabilir.


Adının kısaltılmasının kabul edilebilir olup olmadığından emin değil.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ İlk adı kullanmak yerine ilk adı kullanıyorum, haklı görünüyor.
otorractor

Yapabileceğim G Boole105 karakterle * 6 ile - Ben isim kısaltılabilir miktarına bir sınır var olması gerektiğini düşünüyorum.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

3
Programınız yeni bir satır olmadan çalışmıyor gibi görünüyor. Bu soru açıkça yeni satır karakterlerinin kullanımına izin vermezUsing 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

Sadece CJam dışında bir dile sahip olmak için. 256'da taşan, bayt veri türüne sahip orijinal özellik Brainfuck gerektirir.

Yalnızca 2 karakter kullanır: +geçerli hücreyi artırmak ve geçerli hücreyi .çıkarmak için.

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

Çıktı

Hello, John McCarthy!

Credit, cevabında aşağıdakileri açıkladığı için Coredump'a gider:

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

Çıktıda ünlem işareti eksik görünüyor!
trichoplax

1
@githubphagocyte Teşekkürler, düzeltildi!
Seviye Nehri St

Yardım ettiğine sevindim.
coredump

5

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

Gönderen Vikipedi :

Niklaus Emil Wirth (15 Şubat 1934 doğumlu), Pascal da dahil olmak üzere birçok programlama dili tasarlaması ve yazılım mühendisliğinde birçok klasik konuya öncülük etmesiyle tanınan İsviçreli bir bilgisayar bilimcisi. 1984'te bir dizi yenilikçi bilgisayar dili geliştirdiği için Turing Ödülü'nü kazandı.

34 kayma ile, Niklaus Emil Wirth(18 karakter, 14 benzersiz) olarak biter p,./$86Bg0,/By,57+.

Kod ( burada deneyin ):

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

Yıkmak:

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)

Son satır @, satırın başına bir HALT karakteri ( ) yerleştirir. Kontrol bu noktaya geri döndüğünde, program durur. Bu aslında gerekli olmamalı, çünkü @(5,0) 'daki karakter hala orada ve ulaşılmadan önce hiçbir şey çıkmamalı. Bununla birlikte, bu canavarlığı çalıştıracak tek çevrimiçi Befunge tercümanı, onsuz düzgün çalışmayacak.

O ise sadece bir çalışma çözüm yapmak için aslında mümkün Niklaus Wirth(12 eşsiz karakter, p,./$86By,57+), ancak kod, fazla çok uzun.

(Befunge-98 olarak etiketlendi çünkü Befunge-93, 80 karakterlik bir genişlikle sınırlı.)


4

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

Çıktı:

Hello, C. A. R. Hoare!

CJam, 662 bayt * 10 = 6620 8700

Kazanmak için değil, sadece göründüğü için. Sadece kullandı 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

Çıktı:

Hello, C. A. R. Hoare!

Jeneratör

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

Önemsiz cevap 222(((((((((((c(tarafından üretilen q{i222_@-'(*'c}%) 3420 bayt vardır.


Vay, e_dışarıdaki rakamları kullanabileceğini bilmiyordum .
Martin Ender

Tekrarlarını kullanarak ne kadar düşük alabileceğinizi kontrol ettiniz 2mi? Veya diğer (yararlı) karakterler kullanılarak B, 5ve $? (Örneğin, ikinci ile dördüncü uzayı ve ikinci ve üçüncü periyodu ile birlikte 2$, Abununla birlikte alabilirsiniz 2$((.)
Martin Ender

@ MartinBüttner Biraz elle golf oynamaya çalıştı. Ancak çok karmaşık görünüyordu. Belki bunu daha sonra yapmak için bir program yazarım. Ancak bu yine de kazanamayacak.
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

ekranlar:

Hello, Arthur John Robin Gorell Milner!

Bu CJam kullanarak ilk cevabım, bu yüzden kesinlikle daha iyi golf olabilir (herhangi bir ipucu açığız).


İşte kullandığım bazı yardımcı kod. Karakteri başka isimler için ayarladığım için, CJam'ı (veya belki başka bir dil için) daha iyi bilen biri için faydalı olabilir.

  • Benzersiz karakterlerin sayısı ile birlikte karakter setini bulun
(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)))))
  • İyi bilinen figürlerin bir listesini tanımlayın
(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))
  • İzin verilen yazdırılabilir karakter kümelerini kümenin boyutuna göre sıralayın
(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'nın bilgisayar bilimciler listesinden bir tarama yaptım ve orada listelenen tüm insanların doğumlarını ve en uzun isimlerini topladım. Tüm bunları gözden geçirmek ve ortak bir dilde yapabileceklerimi bulmak için bir program yazdım. Ne yazık ki, destekleyebilecek herhangi bir isim bulamadı echo;, alert(), console.log()(tek umduğum), printya da main.

Temelde ham tarama verilerimi, diğer dilleri benzer şekilde aramak istemeniz durumunda paylaşmak istedim (not: yanlış ve eksik olabilir): Tarama Verileri .

EDIT : Bilgisayar tarama listesindeki ve bilgisayar bilimlerindeki öncülerin listesinden yaklaşık 40 yeni isimle yeni tarama pastası .

EDIT : Listeyi elle temizle.

Bunu buldunuz Jean David Ichbiah (1940), Ada baş tasarımcısı sağlar +-.(üç kişiden en kısa bunu). Bu BF kodunu onun için oluşturdum.

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

Alexander Keewatin Dewdney en kullanışlı BF karakterlerini ( +.<>) verdi, ancak cevabımın biraz üzerinde geldi. Sağladığım kimse bulunamadı .[].


1
Bu tarama verilerinin bazıları kesinlikle yanlıştır. Sir Maurice Wilkes'la tanıştım: yaşlıydı ama 900 yaşında değildi.
Peter Taylor

Manuel bir geçiş yaptım ve bunlardan bazılarını düzelttim ve ayrıca botun almadığı birçok tarih buldum. Yine de benim için yeni bir sonuç çıkmadı.
BMac

4

Yakut 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

Mevcut karakterler:

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

Çıktı:

"Hello, Anatolii Alexeevich Karatsuba!"

1937 doğumlu olan Anatolii Karatsuba , keyfi hassasiyetli operandların hızlı çarpımını sağlayan bir yöntem olan Karatsuba Algoritması dahil analitik sayı teorisi (kişisel olarak zevk aldığım bir alan) konusundaki katkıları ile tanınıyor .

Bu, denediğim ilk ve tek isim.


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

Çevrimiçi demo

Douglas Engelbart (1925 - 2013) belki de “Tüm Demos'un Annesi” için en ünlüsüdür . Adı ve doğum yılı, !&(),-./9]^z{~bu çözümün kullandığı karakterleri verir .&()-./9]^~

Kodun temel yapısı build list of numbers](-, istif üzerinde başlayan boş dizgiye sahip bir diziye çok sayı koyan, daha sonra bu dizgiyi dışarı çeker ve -sayı dizisini dizgeye dönüştürmek için promosyon türüyle kullanır .

Yığının üstündeki öğelere erişim olmadığından, yığının üstüne belirli bir tam sayı alan kısa snippet'leri bulmak ve gereken sonraki tam sayıyı eklemek için bir C # programı yazdım. Snippet'inde Bu, bir küçük sorun yarattı 69( Eson buldu) -ve snippet'inde 110( nile başladı) 9onun için daha uzun bir pasajı kullanmak tek bir karakter maliyeti: 110.


2

CaneCode , 458 410 * 16 = 7328 6560

11111111111111111111111111111111111111111111111111111111111111111111111184111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118111111188111841111111111111111111111111111111111111111111182222222222228331184222222222222228118111111118483322222841811111111822222828483322284111182222222222222811111111111111822222222222222811111111182222228222222281111111111118418

Karşılık gelen BF:

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

Çıktılar:

Hello, Jack Elton Bresenham!

CaneCode, sırasıyla 12348karşılık gelen Brainfuck'un doğrudan bir sembol ikamesidir +-><.. Yaklaşık 2 saatimi +-., normal Brainfuck'a verilen kısa bir ismi aramaya çalışırken , başaramadım.

Bresenham'ın çizgi algoritmasının mucidi ve 1937 doğumlu Jack Elton Bresenham aşağıdaki karakterleri veriyor:

o')1Ej2:54g8+9.3

Ne yazık ki, 5( [) kullanılabilirken, 6( ]) eksikliği , kodun hala 100-s'lik alanı (küçük harfli karakterler için) yavaş yavaş arttırması gerektiği anlamına gelir.


2

> <> (Balık) , 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;

Çıktılar:

Hello, Ivar Hjalmar Jacobson!

1939 doğumlu Ivar Hjalmar Jacobson , BMac'ın tarama verileri sayesinde bulundu . O karakterleri sağlar

)*+24567:;>Gopq

> <>, Befunge gibi, 2B yığın tabanlı bir dildir. Yararlı> <> komutları:

  • *+24567aritmetik için ( 47a 4ve a'yı 7yığında iterek not edin 47)
  • )büyüktür (almak için yararlıdır 1)
  • : yığının üstünü kopyalamak için
  • o çıktı için
  • ; program sonlandırma için

pyansıması için de iyidir, ancak bunun için iyi bir kullanım düşünemedim. >başka bir> <> komutudur, program akışını doğru yönlendirir, ancak program zaten bu yönde çalıştığından, buna gerek yoktu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.