Dites bonjour aux pionniers de l'informatique


30

Choisissez votre informaticien célèbre favori ou pionnier de l' informatique qui est né en 1942 ou plus tôt (en 1943 marque le début de la création de l' ordinateur « premier » ). Ils devraient avoir une page Wikipédia ou un autre site qui répertorie leur année de naissance et indique comment leurs réalisations sont liées à l'informatique. Vous pouvez choisir la même chose que quelqu'un d'autre mais choisir quelqu'un de nouveau est encouragé.

Prenez un nom sous lequel ils sont généralement connus. Il s'agit très probablement de leur prénom et de leur nom, mais cela peut inclure des abréviations ou des prénoms si cela est plus courant. Par exemple, pour Tony Hoare à la fois Tony Hoareet C. A. R. Hoareserait acceptable.

Tous les caractères du nom doivent être imprimables en ASCII . Si le nom contient des caractères qui ne sont pas imprimables en ASCII, c'est bien si vous choisissez quelque chose d'approximatif. par exemple Kurt Godelau lieu de Kurt Gödel.

Prenez l'ensemble de caractères uniques dans le nom (par exemple C. ARHoare) et déplacez-les vers le haut de l'échelle ASCII imprimable d'ici l'année de naissance de votre scientifique, en boucle autour de l' ~espace. (Ajoutez essentiellement le modulo 95 de l'année de naissance.) Cela vous donnera un nouvel ensemble (très probable) de caractères ASCII imprimables.

Par exemple, CAR Hoare est né en 1934, donc le fait de déplacer chaque caractère en C. ARHoare1934 (34 mod 95) donne ePBctj2$5(.

Cet extrait de pile fera tout le changement pour vous:

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>

Défi

En utilisant cet ensemble et uniquement cet ensemble (pas de tabulations, pas de nouvelles lignes) de caractères ASCII imprimables décalés, écrivez un programme qui imprime Hello, [name]!sur stdout ou l'alternative la plus proche, où [name]est le même nom exact que vous avez choisi ci-dessus et déplacé pour obtenir les caractères de votre programme. Vous pouvez utiliser plusieurs caractères de l'ensemble ou ne pas en utiliser du tout. Par exemple, le programme théorique PetBee($25s'imprime Hello, C. A. R. Hoare!.

Notation

Votre score est la taille de votre code en octets multiplié par le nombre de caractères uniques dans le nom que vous choisissez. La plaie la plus faible gagne.


6
Si je devais choisir, par exemple, Muḥammad ibn Mūsā al-Khwārizmī, et utiliser une ficulation ASCII raisonnable de leur nom, par exemple Muhammad ibn Musa al-Khwarizmi, cela serait-il acceptable?
ymbirtt

3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy. Né en 1906. Est-ce que ça va?
Bill Woodger

2
@BillWoodger Je pense que c'est un peu exagéré. Je serais d'accord avec Rear Admiral Grace Murray Hoppercependant. N'oubliez pas que la taille de votre code est multipliée par le nombre de caractères uniques dans le nom, donc un nom plus long n'est pas nécessairement meilleur.
Calvin's Hobbies

5
@ Calvin'sHobbies Oh oups. Je pensais que c'était du grain sur mon écran.
Justin

2
Qu'en est-il du frère de CAR Hoare, CDR Hoare?
David Conrad

Réponses:


8

Insomnie, 103 99 98 * 8 = 784

George Boole , 1815

Les 5 programmes ci-dessous ont la même longueur (98) et la même sortie.

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

Impressions Hello, George Boole!

Insomnie, 103 * 6 = 618 (probablement optimal et unique)

Si G Boole( George Boole , 1815) est acceptable ...

ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL

Impressions Hello, G Boole!


Insomnie, 94 92 89 85 83 * 10 = 830

Kurt Godel, 1906.

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

Impressions Hello, Kurt Godel!

J'ai écrit un programme pour rechercher la solution. Ma deuxième version du programme devrait être plus proche de l'optimale que ma première version.

Selon le nitpick de @Martin Büttner ( 100 92 88 85 caractères, même jeu de caractères):

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

Impressions Hello, Kurt Goedel!

Interprète


Vous pouvez l'inclure dans votre réponse et la masquer par défaut.
Optimizer

2
Nitpick: la translittération correcte d' Gödelutiliser uniquement l'alphabet latin est Goedel. ;)
Martin Ender

@Optimizer: J'ai une autre réponse en utilisant également Insomnia, donc je l'ai mis sur l'autre thread.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
Je sais, mais il occupera autant d'espace que le lien vers l'interprète et vous pouvez continuer à inclure l'extrait de code dans la réponse que vous souhaitez. C'est le but des extraits! :)
Optimiseur

15

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

Testez-le ici.

J'ai choisi Edsger Dijkstra, né en 1930, ce qui me donne c#2&$1>b()* 3(que j'ai vraiment juste choisi parce que c'était le premier que j'ai trouvé dont le nom a donné des caractères utiles pour CJam; j'ai vérifié une douzaine de noms depuis et aucun n'avait l'air aussi prometteur).

Le code essentiellement construit juste les codes ASCII en utilisant 1, 2, 3, *, #(exponentiation) et (, )(décrément, incrément) et les convertit en un personnage c. Pour enregistrer certains caractères, je peux parfois copier un caractère antérieur avec $( 0$copie l'élément de pile supérieur, 1$copie l' élément de pile de deuxième en haut, etc.).

Voici la répartition du code en caractères (c'est aussi exécutable):

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

J'ai choisi R Kowalski, 1941ce qui me permet d'utiliser:{It9A+6=53

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

Celui-ci est un peu plus complexe que l'ancienne réponse (ci-dessous) car de nombreuses billes passent par plusieurs appareils, dans l'ensemble la plupart des billes ont juste quelques éléments ajoutés avant d'être imprimées. Parce que je n'avais pas de soustraction ou de chiffres bas, les codes ascii inférieurs devaient être formés en ajoutant en fusionnant deux billes de haute valeur, car cela entraîne en plus du modulo. (Je l'ai utilisé =3comme déflecteur car il pousse chaque marbre non égal à 3 vers la droite et ressemble à un chat mignon)

sortie:

Hello, R Kowalski!

ancienne réponse:

Marbelous , 113 * 17 = 1921

Marbelous se débrouille bien ici, puisque jamais le marbre qui tombe de la planche est imprimé, en raison de sa nature 2D, il a besoin de quelques chiffres + de l'arithmétique pour ne pas laisser le borad devenir trop énorme.

J'ai choisi Philip D. Estridge, 1937qui donne u./26EiSj9:8*-+comme jeu de caractères disponible. Les caractères réellement utilisés sont.+-245689E

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

Le tableau est assez simple, les 3 premières lignes sont des littéraux, chaque groupe de deux est une valeur hexadécimale, la quatrième ligne est des opérations arithmétiques pour former les codes ascii qui n'ont pas pu être écrits explicitement en raison des jeux de caractères limités.

sortie:

Hello, Philip Donald Estridge!

Vous pouvez l'essayer ici!

Je vais maintenant chercher un meilleur candidat possible, car il semble que Marbelous pourrait être compétitif ici.


Je ne sais pas si le raccourcissement du nom est jugé acceptable.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ J'utilise l'initiale plutôt que le prénom complet, semble justifié.
suracteur

Je peux le faire G Booleavec 105 caractères * 6 - Je pense qu'il devrait y avoir une limite sur la façon dont le nom peut être raccourci.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

3
Votre programme ne semble pas fonctionner sans nouvelle ligne. La question interdit explicitement l'utilisation du nouveau caractère de ligneUsing 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

Juste pour avoir une langue autre que CJam. Nécessite la spécification d'origine Brainfuck avec le type de données d'octets, qui déborde à 256.

N'utilise que 2 caractères: +pour incrémenter la cellule actuelle et .pour sortir la cellule actuelle.

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

Sortie

Hello, John McCarthy!

Nous remercions Coredump d'avoir révélé ce qui suit dans sa réponse:

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

Il semble qu'il manque un point d'exclamation à la sortie!
trichoplax

1
@githubphagocyte Merci, c'est réglé maintenant!
Level River St

Je suis content que cela ait aidé.
coredump

5

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

De Wikipédia :

Niklaus Emil Wirth (né le 15 février 1934) est un informaticien suisse, surtout connu pour la conception de plusieurs langages de programmation, dont Pascal, et pour avoir été pionnier sur plusieurs sujets classiques en génie logiciel. En 1984, il a remporté le prix Turing pour le développement d'une séquence de langages informatiques innovants.

Avec un décalage de 34, Niklaus Emil Wirth(18 caractères, 14 uniques) finit comme p,./$86Bg0,/By,57+.

Code ( essayez-le ici ):

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

Panne:

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)

La dernière ligne place un caractère HALT ( @) au début de la ligne. Lorsque le contrôle revient à ce point, le programme s'arrête. Cela ne devrait en fait pas être nécessaire, car le @caractère en (5,0) est toujours là et rien ne doit être sorti avant qu'il ne soit atteint. Cependant, le seul interprète Befunge en ligne qui exécutera cette monstruosité ne fonctionnera pas correctement sans lui.

Il est en fait possible de faire une solution de travail avec juste Niklaus Wirth(12 caractères uniques p,./$86By,57+), mais le code est beaucoup, beaucoup plus long.

(Tagué comme Befunge-98 car Befunge-93 est limité à une largeur de 80 caractères.)


4

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

Sortie:

Hello, C. A. R. Hoare!

CJam, 662 octets * 10 = 6620 8700

Pas pour gagner mais simplement parce que cela semble possible. Il a utilisé seulement 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

Sortie:

Hello, C. A. R. Hoare!

Générateur

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

La réponse triviale 222(((((((((((c(générée par q{i222_@-'(*'c}%) a 3420 octets.


Wow, je ne savais pas que vous pouviez utiliser des e_littéraux numériques extérieurs.
Martin Ender

Avez-vous vérifié à quel point vous pouvez descendre en utilisant des répétitions de 2? Ou en utilisant les autres caractères (utiles) B, 5et $? (Par exemple, vous pouvez obtenir des deuxième à quatrième espaces et les deuxième et troisième périodes avec 2$, ainsi que Aavec 2$((.)
Martin Ender

@ MartinBüttner J'ai essayé de jouer au golf un peu à la main. Mais cela semblait trop compliqué. J'écrirai peut-être un programme pour le faire plus tard. Mais cela ne gagnera pas de toute façon.
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

Affiche:

Hello, Arthur John Robin Gorell Milner!

C'est ma première réponse en utilisant CJam, donc cela peut sûrement mieux jouer au golf (tout indice est le bienvenu).


Voici un code utilitaire que j'ai utilisé. Comme j'ai calculé le jeu de caractères pour certains autres noms, cela peut être utile pour quelqu'un qui connaît mieux CJam (ou peut-être pour une autre langue).

  • Trouvez le jeu de caractères, ainsi que le nombre de caractères uniques
(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)))))
  • Définir une liste de personnages connus
(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))
  • Calculer les jeux de caractères imprimables autorisés, trier par taille de jeu
(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

J'ai parcouru la liste des informaticiens de Wikipédia et j'ai collecté les années de naissance et les noms les plus longs de toutes les personnes qui y sont répertoriées. J'ai écrit un programme pour exécuter tout cela et trouver tout ce que je pourrais éventuellement faire dans une langue commune. Malheureusement, je ne pouvais pas trouver des noms qui pourraient soutenir echo;, alert(), console.log()(je l' espère), printou main.

Je voulais principalement partager mes données d'exploration brutes au cas où quelqu'un voudrait également rechercher d'autres langues (remarque: peut être inexact et incomplet): Données d'exploration .

EDIT : Nouvelle pâte d'exploration avec environ 40 nouveaux noms de List of computing people et List of pionniers in computer science .

EDIT : nettoyé manuellement la liste.

J'ai trouvé que Jean David Ichbiah (1940), concepteur en chef d'Ada, fournit +-.(le plus court des trois personnes pour le faire). J'ai généré ce code BF pour lui.

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

Alexander Keewatin Dewdney a fourni les caractères BF les plus utilisables ( +.<>), mais est venu légèrement au-dessus de ma réponse. Je n'ai trouvé personne fourni .[].


1
Certaines de ces données d'exploration sont définitivement fausses. J'ai rencontré Sir Maurice Wilkes: il était vieux, mais pas âgé de 900 ans.
Peter Taylor

J'ai pris un passage manuel et corrigé certains d'entre eux, et j'ai également trouvé beaucoup de dates que le bot n'a pas du tout relevées. Mais cela n'a pas apporté de nouveaux résultats pour moi.
BMac

4

Rubis 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

Caractères disponibles:

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

Sortie:

"Hello, Anatolii Alexeevich Karatsuba!"

Anatolii Karatsuba , né en 1937, est surtout connu pour ses contributions au domaine de la théorie analytique des nombres (un domaine que j'aime personnellement), y compris l' algorithme de Karatsuba , une méthode pour la multiplication rapide d'opérandes de précision arbitraires.

C'est le premier et le seul nom que j'ai essayé.


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

Démo en ligne

Douglas Engelbart (1925 - 2013) est peut-être le plus célèbre pour la "Mère de toutes les démos" . Son nom et son année de naissance donnent des caractères !&(),-./9]^z{~, dont cette solution utilise&()-./9]^~

La structure de base du code consiste à build list of numbers](-placer un grand nombre de nombres dans un tableau avec la chaîne vide qui commence sur la pile, puis à extraire cette chaîne et à l'utiliser avec la promotion de type de -pour transformer le tableau de nombres en chaîne.

Puisqu'il n'y a pas d'accès aux éléments sous le haut de la pile, j'ai écrit un programme C # pour trouver de courts extraits qui prennent un entier donné en haut de la pile et ajoutent le prochain entier requis. Cela a créé un petit problème, lorsque l'extrait de code pour 69( E) s'est terminé avec -et l'extrait de code pour 110( n) a commencé avec 9: il en coûte un caractère pour utiliser un extrait de code plus long pour 110.


2

CaneCode , 458 410 * 16 = 7328 6560

11111111111111111111111111111111111111111111111111111111111111111111111184111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118111111188111841111111111111111111111111111111111111111111182222222222228331184222222222222228118111111118483322222841811111111822222828483322284111182222222222222811111111111111822222222222222811111111182222228222222281111111111118418

BF correspondant:

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

Les sorties:

Hello, Jack Elton Bresenham!

CaneCode est juste une substitution de symboles directe de Brainfuck, où 12348correspondent +-><.respectivement. J'ai passé environ 2 heures à essayer de chercher un nom court qui donnait +-.un Brainfuck normal, sans succès.

Jack Elton Bresenham , inventeur de l'algorithme de ligne de Bresenham et né en 1937, donne les personnages suivants:

o')1Ej2:54g8+9.3

Malheureusement, alors que 5( [) est disponible, l'absence de 6( ]) signifie que le code devait encore incrémenter la zone de 100 ish (pour les caractères minuscules) lentement.


2

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

Les sorties:

Hello, Ivar Hjalmar Jacobson!

Ivar Hjalmar Jacobson , né en 1939, a été retrouvé grâce aux données d'exploration de BMac . Il fournit les caractères

)*+24567:;>Gopq

> <>, comme Befunge, est un langage basé sur la pile 2D. Les commandes> <> utiles sont:

  • *+24567pour l'arithmétique (notez que ça 47pousse un 4et un 7sur la pile, pas 47)
  • )pour plus de (utile pour obtenir 1)
  • : pour dupliquer le haut de la pile
  • o pour la sortie
  • ; pour la fin du programme

pest également bon pour la réflexion, mais je n'ai pas pu penser à une bonne utilisation. >est une autre commande> <>, qui dirige le flux du programme vers la droite, mais comme le programme s'exécute déjà dans cette direction, il n'était pas nécessaire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.