Begrüßen Sie die Pioniere der Informatik


30

Wählen Sie Ihren berühmten Lieblingsinformatiker oder Pionier der Informatik, der 1942 oder früher geboren wurde (1943 markiert den Beginn der Entwicklung des „ersten“ Computers ). Sie sollten über eine Wikipedia-Seite oder eine andere Website verfügen, auf der ihr Geburtsjahr und ihre Leistungen im Zusammenhang mit der Informatik aufgeführt sind. Sie können das Gleiche wie eine andere Person wählen, es wird jedoch empfohlen, eine neue Person auszuwählen.

Nehmen Sie einen Namen, unter dem sie allgemein bekannt sind. Dies wird höchstwahrscheinlich der Vor- und Nachname sein, es können jedoch auch Abkürzungen oder Zwischennamen vorkommen, wenn dies häufiger vorkommt. Zum Beispiel für Tony Hoare beide Tony Hoareund C. A. R. Hoarewäre akzeptabel.

Alle Zeichen im Namen müssen druckbares ASCII sein . Wenn der Name Zeichen enthält, die nicht in ASCII gedruckt werden können, ist es in Ordnung, wenn Sie eine ungefähre Angabe treffen. zB Kurt Godelstatt Kurt Gödel.

Nehmen Sie den Satz eindeutiger Zeichen im Namen (z. B. C. ARHoare) und verschieben Sie sie bis zum Geburtsjahr Ihres Wissenschaftlers auf der druckbaren ASCII-Skala, um von dort ~in den Weltraum zu gelangen. (Fügen Sie im Allgemeinen das Geburtsjahr Modulo 95 hinzu.) Dadurch erhalten Sie (höchstwahrscheinlich) einen neuen Satz druckbarer ASCII-Zeichen.

Zum Beispiel wurde CAR Hoare im Jahr 1934 geboren, so dass jede Zeichenverschiebung C. ARHoareum 1934 (34 mod 95) Zeichen ergibt ePBctj2$5(.

Dieses Stack-Snippet übernimmt die gesamte Verschiebung für Sie:

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>

Herausforderung

Verwenden Sie diesen Satz und nur diesen Satz (keine Tabulatoren, keine Zeilenumbrüche) von versetzten druckbaren ASCII-Zeichen, und schreiben Sie ein Programm, das Hello, [name]!nach stdout oder der nächstgelegenen Alternative gedruckt wird. Dabei [name]handelt es sich um denselben exakten Namen, den Sie oben ausgewählt und verschoben haben, um Ihre Programmzeichen zu erhalten. Sie können mehrere Zeichen aus dem Satz verwenden oder einige überhaupt nicht verwenden. Beispielsweise wird das theoretische Programm PetBee($25gedruckt Hello, C. A. R. Hoare!.

Wertung

Ihre Punktzahl entspricht Ihrer Codegröße in Byte, multipliziert mit der Anzahl der eindeutigen Zeichen in dem von Ihnen ausgewählten Namen. Die niedrigste Wunde gewinnt.


6
Würde ich zum Beispiel Muḥammad ibn Mūsā al-Khwārizmī auswählen und eine vernünftige ASCII-Schreibweise ihres Namens verwenden, zum Beispiel Muhammad ibn Musa al-Khwarizmi, wäre das akzeptabel?
Ymbirtt

3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy. Geboren 1906. Wäre das in Ordnung?
Bill Woodger

2
@ BillWoodger Ich denke, das ist ein bisschen langweilig. Ich wäre aber in Ordnung Rear Admiral Grace Murray Hopper. Denken Sie daran, dass Ihre Codegröße mit der Anzahl der eindeutigen Zeichen im Namen multipliziert wird, sodass ein längerer Name nicht unbedingt besser ist.
Calvins Hobbys

5
@ Calvin'sHobbies Oh, hoppla. Ich dachte, das wäre ein Problem auf meinem Bildschirm.
Justin

2
Was ist mit CAR Hoares Bruder, CDR Hoare?
David Conrad

Antworten:


8

Schlaflosigkeit, 103 99 98 * 8 = 784

George Boole , 1815

Alle 5 Programme haben dieselbe Länge (98) und denselben Ausgang.

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

Druckt Hello, George Boole!

Schlaflosigkeit, 103 * 6 = 618 (wahrscheinlich optimal und einzigartig)

Wenn G Boole( George Boole , 1815) akzeptabel ist ...

ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL

Druckt Hello, G Boole!


Schlaflosigkeit, 94 92 89 85 83 * 10 = 830

Kurt Godel, 1906.

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

Druckt Hello, Kurt Godel!

Ich habe ein Programm geschrieben, um nach der Lösung zu suchen. Meine zweite Version des Programms sollte näher am Optimum liegen als meine erste Version.

Laut @Martin Büttner's Nitpick ( 100 92 88 85 Zeichen, gleicher Zeichensatz):

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

Druckt Hello, Kurt Goedel!

Dolmetscher


Sie können es in Ihre Antwort selbst aufnehmen und standardmäßig ausblenden.
Optimierer

2
Nitpick: Die korrekte Transliteration der GödelVerwendung nur des lateinischen Alphabets ist Goedel. ;)
Martin Ender

@Optimizer: Ich habe eine andere Antwort, die auch Schlaflosigkeit verwendet, also habe ich sie in den anderen Thread gestellt.
n̴̖̋h̴̖̋a̷̭̿h̷̭̿d̸̡̅ẗ̵̨́

1
Ich weiß, aber es wird genauso viel Platz einnehmen wie der Link zum Dolmetscher, und Sie können das Snippet in jede Antwort einbeziehen, die Sie mögen. Das ist der Zweck von Snippets! :)
Optimierer

15

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

Teste es hier.

Ich habe gewählt Edsger Dijkstra, Jahrgang 1930, das gibt mir c#2&$1>b()* 3(wen ich wirklich nur gewählt habe, weil er der erste war, den ich gefunden habe, dessen Name nützliche Zeichen für CJam lieferte; ich habe seitdem ein Dutzend Namen überprüft, und keiner sah so vielversprechend aus).

Der Code im Grunde baut nur den ASCII - Codes verwenden 1, 2, 3, *, #(Potenzierung) und (, )(Abnahme, Zuwachs) und wandelt sie in ein Zeichen mit c. Um einige Zeichen zu speichern, kann ich manchmal ein früheres Zeichen mit kopieren $( 0$kopiert das oberste Stapelelement, 1$kopiert das zweithöchste Stapelelement usw.).

Hier ist die Aufteilung des Codes in Zeichen (dies kann auch ausgeführt werden):

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

Ich habe ausgewählt, R Kowalski, 1941welches ich verwenden darf:{It9A+6=53

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

Dieses ist ein bisschen komplexer als die alte Antwort (siehe unten), da viele Murmeln mehrere Geräte durchlaufen. Insgesamt hat Marmor nur ein paar Dinge hinzugefügt, bevor er gedruckt wird. Da ich keine Subtraktion oder niedrige Ziffern hatte, mussten die unteren ASCII-Codes durch Addition von zwei Murmeln mit hohem Wert gebildet werden, da dies zu Modulo führt. (Ich habe es =3als Deflektor verwendet, da es jeden Marmor ungleich 3 nach rechts drückt und wie eine süße Katze aussieht.)

Ausgabe:

Hello, R Kowalski!

alte antwort:

Marbelous , 113 * 17 = 1921

Marbelous ist hier in Ordnung, da Marmor, der von der Tafel fällt, aufgrund seiner 2D-Beschaffenheit gedruckt wird. Er benötigt jedoch ein paar Ziffern und ein wenig Arithmetik, damit das Borad nicht zu groß wird.

Ich habe als verfügbaren Zeichensatz gewählt, Philip D. Estridge, 1937wer nachgibt u./26EiSj9:8*-+. Die tatsächlich verwendeten Zeichen sind.+-245689E

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

Die Tafel ist ziemlich einfach, die ersten 3 Zeilen sind Literale, jede Zweiergruppe ist ein Hexadezimalwert, die vierte Zeile sind arithmetische Operationen zur Bildung der ASCII-Codes, die aufgrund der begrenzten Zeichensätze nicht explizit geschrieben werden konnten.

Ausgabe:

Hello, Philip Donald Estridge!

Sie können es hier ausprobieren!

Ich werde jetzt nach einem möglichen besseren Kandidaten suchen, da es so aussieht, als wäre Marbelous hier tatsächlich wettbewerbsfähig.


Nicht sicher, ob das Kürzen des Namens akzeptabel ist.
n̴̖̋h̷͉̃a̷̭̿h̷̭̿d̸̡̅ẗ̵̨́

@ n̴̖̋h̴̖̋ã̷͉h̷̭̿d̷̰̀ĥ̷̳ Ich verwende eher die Initiale als den vollständigen Vornamen, scheint gerechtfertigt zu sein.
Overactor

Ich kann G Boolemit 105 Zeichen auskommen * 6 - Ich denke, es sollte eine Begrenzung geben, um wie viel der Name gekürzt werden kann.
n̴̖̋h̴̖̋a̷̭̿h̷̭̿d̸̡̅ẗ̵̨́

3
Ihr Programm scheint ohne neue Zeile nicht zu funktionieren. Die Frage verbietet ausdrücklich die Verwendung eines neuen Using this set and only this set (no tabs, no newlines) of shifted printable ASCII characters
Zeilenzeichens

6

Brainfuck, 1846 * 12 = 22152

Nur um eine andere Sprache als CJam zu haben. Benötigt die Originalspezifikation Brainfuck mit Byte-Datentyp, der bei 256 überläuft.

Verwendet nur 2 Zeichen: +um die aktuelle Zelle .zu erhöhen und um die aktuelle Zelle auszugeben.

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

Ausgabe

Hello, John McCarthy!

Dank geht an Coredump, weil er in seiner Antwort Folgendes enthüllt hat:

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

Der Ausgabe scheint ein Ausrufezeichen zu fehlen!
Trichoplax

1
@githubphagocyte Danke, es ist jetzt behoben!
Level River St

Ich bin froh, dass es geholfen hat.
Coredump

5

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

Aus Wikipedia :

Niklaus Emil Wirth (geb. 15. Februar 1934) ist ein Schweizer Informatiker, der vor allem für das Entwerfen mehrerer Programmiersprachen bekannt ist, darunter auch Pascal, und als Pionier in mehreren klassischen Themen der Softwaretechnik. 1984 gewann er den Turing Award für die Entwicklung einer Reihe innovativer Computersprachen.

Bei einer Verschiebung von 34 Niklaus Emil Wirth(18 Zeichen, 14 Unikate) ergibt sich als p,./$86Bg0,/By,57+.

Code (hier ausprobieren ):

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

Nervenzusammenbruch:

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)

In der letzten Zeile wird ein HALT-Zeichen ( @) am Zeilenanfang eingefügt . Wenn das Steuerelement zu diesem Punkt zurückspringt, stoppt das Programm. Dies sollte eigentlich nicht notwendig sein, da das @Zeichen bei (5,0) noch vorhanden ist und nichts ausgegeben werden soll, bevor es erreicht ist. Der einzige Online-Befunge-Interpreter, der diese Monstrosität ausführt, funktioniert jedoch ohne sie nicht ordnungsgemäß.

Es ist tatsächlich möglich, eine funktionierende Lösung mit nur Niklaus Wirth(12 eindeutigen Zeichen p,./$86By,57+) zu erstellen, aber der Code ist viel, viel länger.

(Getaggt als Befunge-98, da Befunge-93 auf eine Breite von 80 Zeichen begrenzt ist.)


4

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

Ausgabe:

Hello, C. A. R. Hoare!

CJam, 662 Bytes * 10 = 6620 8700

Nicht um zu gewinnen, sondern nur weil es möglich erscheint. Es wurde nur verwendet 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

Ausgabe:

Hello, C. A. R. Hoare!

Generator

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

Die einfache Antwort 222(((((((((((c(generiert von q{i222_@-'(*'c}%) hat 3420 Bytes.


Wow, ich wusste nicht, dass Sie e_externe Zahlenliterale verwenden können.
Martin Ender

Haben Sie mit Wiederholungen von überprüft, wie niedrig Sie werden können 2? Oder durch die anderen (Nutz-) Zeichen verwendet B, 5und $? (ZB können Sie den zweiten bis vierten Platz und die zweite und dritte Periode mit 2$sowie Amit bekommen 2$((.)
Martin Ender

@ MartinBüttner Versucht, ein bisschen mit der Hand Golf zu spielen. Aber es schien zu kompliziert. Vielleicht schreibe ich später ein Programm dafür. Aber das wird sowieso nicht gewinnen.
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

Zeigt an:

Hello, Arthur John Robin Gorell Milner!

Dies ist meine erste Antwort mit CJam, also kann dies sicherlich besser Golf spielen (jeder Hinweis ist willkommen).


Hier ist ein Utility-Code, den ich verwendet habe. Da ich den Zeichensatz für einige andere Namen berechnet habe, kann dies für jemanden nützlich sein, der CJam besser kennt (oder für eine andere Sprache).

  • Suchen Sie den Zeichensatz zusammen mit der Anzahl der eindeutigen Zeichen
(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)))))
  • Definieren Sie eine Liste bekannter Figuren
(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))
  • Berechnen Sie die zulässigen druckbaren Zeichensätze und sortieren Sie sie nach der Größe des Satzes
(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

Ich habe einen Crawl aus der Wikipedia- Liste der Informatiker durchgeführt und die Geburtsjahre und längsten Namen aller dort aufgeführten Personen gesammelt. Ich habe ein Programm geschrieben, mit dem ich all diese Programme überfliegen und alle möglichen in einer gemeinsamen Sprache finden kann. Leider war ich nicht in der Lage irgendwelche Namen zu finden, unterstützen könnte echo;, alert(), console.log()(ich hoffe kann), printoder main.

Ich wollte meine unformatierten Crawling-Daten hauptsächlich für den Fall freigeben, dass jemand auf ähnliche Weise nach anderen Sprachen suchen wollte (Hinweis: Möglicherweise sind sie ungenau und unvollständig): Crawling-Daten .

EDIT : Neue Crawl-Paste mit ca. 40 neuen Namen aus der Liste der Computer-Leute und der Liste der Pioniere in der Informatik .

EDIT : Manuelles Aufräumen der Liste.

Ich fand heraus, dass Jean David Ichbiah (1940), Chefdesigner von Ada, +-.(die kürzeste von drei Personen, die dazu zur Verfügung steht). Ich habe diesen BF-Code für ihn generiert.

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

Alexander Keewatin Dewdney lieferte die am besten verwendbaren BF-Zeichen ( +.<>), kam aber etwas über meiner Antwort herein. Niemand, den ich fand, stellte zur Verfügung .[].


1
Einige dieser Crawl-Daten sind definitiv falsch. Ich habe Sir Maurice Wilkes getroffen: Er war alt, aber nicht 900 Jahre alt.
Peter Taylor

Ich habe einen manuellen Durchlauf durchgeführt und einige davon repariert und auch eine Menge Daten gefunden, die der Bot überhaupt nicht aufgegriffen hat. Hat aber keine neuen Ergebnisse für mich gebracht.
BMac

4

Rubin 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

Zeichen zur Verfügung:

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

Ausgabe:

"Hello, Anatolii Alexeevich Karatsuba!"

Anatolii Karatsuba , geboren 1937, ist am bekanntesten für seine Beiträge auf dem Gebiet der analytischen Zahlentheorie (ein Gebiet, das ich persönlich mag), einschließlich des Karatsuba-Algorithmus , einer Methode zur schnellen Multiplikation beliebiger Präzisionsoperanden.

Dies ist der erste und einzige Name, den ich ausprobiert habe.


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

Online-Demo

Douglas Engelbart (1925 - 2013) ist vielleicht am bekanntesten für die "Mutter aller Demos" . Sein Name und sein Geburtsjahr geben Zeichen an !&(),-./9]^z{~, von denen diese Lösung Gebrauch macht&()-./9]^~

Die Grundstruktur des Codes besteht darin, build list of numbers](-dass viele Zahlen mit der leeren Zeichenfolge, die auf dem Stapel beginnt, in einem Array abgelegt werden, diese Zeichenfolge dann herausgezogen und mit der Typheraufstufung von verwendet wird -, um das Zahlenarray in eine Zeichenfolge umzuwandeln.

Da es keinen Zugriff auf Elemente unter dem Stapel gibt, habe ich ein C # -Programm geschrieben, um kurze Ausschnitte zu finden, die eine bestimmte Ganzzahl über dem Stapel aufnehmen und die nächste erforderliche Ganzzahl hinzufügen. Dies führte zu einem kleinen Problem, als das Snippet für 69( E) mit endete -und das Snippet für 110( n) mit begann 9: Die Verwendung eines längeren Snippets für kostete ein Zeichen 110.


2

CaneCode , 458 410 * 16 = 7328 6560

11111111111111111111111111111111111111111111111111111111111111111111111184111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118111111188111841111111111111111111111111111111111111111111182222222222228331184222222222222228118111111118483322222841811111111822222828483322284111182222222222222811111111111111822222222222222811111111182222228222222281111111111118418

Entsprechendes BF:

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

Ausgänge:

Hello, Jack Elton Bresenham!

CaneCode ist nur eine direkte Symbolersetzung von Brainfuck, wo jeweils 12348entsprechen +-><.. Ich habe ungefähr 2 Stunden damit verbracht, nach einem Kurznamen zu suchen, der +-.für normales Brainfuck galt, ohne Erfolg.

Jack Elton Bresenham , Erfinder des Bresenhamschen Linienalgorithmus und geboren 1937, gibt die folgenden Zeichen an:

o')1Ej2:54g8+9.3

Während 5( [) verfügbar ist, bedeutet das Fehlen von 6( ]) leider, dass der Code den 100-stelligen Bereich (für Kleinbuchstaben) immer noch langsam erhöhen musste.


2

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

Ausgänge:

Hello, Ivar Hjalmar Jacobson!

Ivar Hjalmar Jacobson , geboren 1939, wurde dank der Crawl-Daten von BMac gefunden . Er liefert die Zeichen

)*+24567:;>Gopq

> <> ist wie Befunge eine auf 2D-Stacks basierende Sprache. Die nützlichen Befehle> <> sind:

  • *+24567für Arithmetik (Note, 47die ein 4und ein 7auf den Stapel drückt , nicht 47)
  • )für größer als (nützlich für immer 1)
  • : zum Duplizieren der Oberseite des Stapels
  • o für die Ausgabe
  • ; zur Programmbeendigung

pist auch gut zum Nachdenken, aber ich konnte mir keine gute Verwendung dafür vorstellen. >ist ein weiterer Befehl> <>, der den Programmfluss nach rechts leitet, aber da das Programm bereits in dieser Richtung ausgeführt wird, wurde es nicht benötigt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.