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 Hoare
et C. A. R. Hoare
serait 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 Godel
au 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. ARHoare
1934 (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($25
s'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.
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy
. Né en 1906. Est-ce que ça va?
Rear Admiral Grace Murray Hopper
cependant. 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.