Wybierz swojego ulubionego znanego informatyka lub pioniera informatyki, który urodził się w 1942 roku lub wcześniej (ponieważ 1943 oznacza początek stworzenia „pierwszego” komputera ). Powinni mieć stronę w Wikipedii lub inną witrynę, która podaje rok ich urodzenia i pokazuje, w jaki sposób ich osiągnięcia odnoszą się do informatyki. Możesz wybrać to samo co ktoś inny, ale zachęcamy do wybrania kogoś nowego.
Weź nazwę, pod którą są powszechnie znani. Najprawdopodobniej będzie to ich imię i nazwisko, ale może zawierać skróty lub drugie imiona, jeśli jest to bardziej powszechne. Na przykład, dla Tony Hoare zarówno Tony Hoare
i C. A. R. Hoare
byłoby do przyjęcia.
Wszystkie znaki w nazwie muszą być drukowalne ASCII . Jeśli nazwa zawiera znaki, których nie można wydrukować w formacie ASCII, dobrze jest, jeśli wybierzesz coś przybliżonego. np. Kurt Godel
zamiastKurt Gödel
.
Weź zestaw unikalnych znaków w nazwie (np. C. ARHoare
) I przesuń je w górę skali ASCII do druku do roku urodzenia swojego naukowca, przechodząc od ~
miejsca do miejsca. (Zasadniczo dodaj rok urodzenia modulo 95.) Otrzymasz (najprawdopodobniej) nowy zestaw drukowalnych znaków ASCII.
Na przykład CAR Hoare urodził się w 1934 roku, więc przeniesienie każdej postaci C. ARHoare
o 1934 (34 mod 95) daje ePBctj2$5(
.
Ten urywek stosu wykona za Ciebie wszystkie zmiany:
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>
Wyzwanie
Używając tego zestawu i tylko tego zestawu (bez tabulatorów, bez nowych linii) przesuniętych drukowalnych znaków ASCII, napisz program, który drukuje Hello, [name]!
na standardowe lub najbliższe alternatywy, gdzie [name]
jest taka sama dokładna nazwa, którą wybrałeś powyżej i którą przesunąłeś, aby uzyskać znaki programu. Możesz użyć wielu znaków z zestawu lub w ogóle ich nie używać. Na przykład PetBee($25
drukowany jest program teoretyczny Hello, C. A. R. Hoare!
.
Punktacja
Twój wynik to rozmiar kodu w bajtach razy liczba unikalnych znaków w wybranej nazwie. Najniższy ból wygrywa.
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy
. Urodzony w 1906 r. Czy byłoby dobrze?
Rear Admiral Grace Murray Hopper
. Pamiętaj, że rozmiar kodu jest mnożony przez liczbę unikalnych znaków w nazwie, więc dłuższa nazwa niekoniecznie jest lepsza.