1942 년 또는 그 이전 에 태어난 유명한 컴퓨터 과학자 또는 컴퓨터 과학 개척자 를 선택하십시오 (1943 년이 '첫 번째'컴퓨터 의 시작을 나타냄). 그들은 Wikipedia 페이지 또는 생년월일을 나열하고 그들의 업적이 컴퓨터 과학과 어떤 관련이 있는지를 알려주는 다른 사이트를 가져야합니다. 다른 사람과 동일하게 선택할 수 있지만 새로운 사람을 선택하는 것이 좋습니다.
그들이 일반적으로 알려진 이름을 사용하십시오. 이름과 성일 가능성이 높지만 더 일반적인 경우 약어 또는 중간 이름이 포함될 수 있습니다. 예를 들어, 위해 토니 호어 모두 Tony Hoare
와 C. A. R. Hoare
허용 할 것이다.
이름의 모든 문자는 인쇄 가능한 ASCII 여야합니다 . 이름에 인쇄 할 수없는 ASCII 문자가 포함되어 있으면 근사값을 선택해도됩니다. 예를 들어, Kurt Godel
대신 Kurt Gödel
.
이름에서 고유 한 문자 세트 (예 C. ARHoare
:)를 가져 와서 과학자의 출생 연도에 따라 인쇄 가능한 ASCII 스케일 위로 이동 ~
하여 우주 에서 반복적으로 이동합니다. (기본적으로 출생 연도 modulo 95를 추가하십시오.) 그러면 인쇄 가능한 ASCII 문자의 새로운 집합이 생깁니다.
예를 들어, CAR Hoare는 1934 년에 태어 났으므로 모든 문자를 C. ARHoare
1934 (34 mod 95) 씩 바꾸면 ePBctj2$5(
.
이 스택 스 니펫은 다음과 같은 모든 변경 작업을 수행합니다.
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>
도전
이 세트 와 시프트 된 인쇄 가능한 ASCII 문자 의이 세트 (탭 없음, 줄 바꿈 없음) 만 사용 Hello, [name]!
하여 stdout 또는 가장 가까운 대안으로 인쇄하는 프로그램을 작성하십시오 . 여기서 [name]
위에서 선택한 것과 동일한 정확한 이름이 있고 프로그램 문자를 얻기 위해 이동했습니다. 세트에서 여러 문자를 사용하거나 일부를 전혀 사용하지 않을 수 있습니다. 예를 들어, 이론적 프로그램은을 PetBee($25
인쇄합니다 Hello, C. A. R. Hoare!
.
채점
점수는 선택한 이름의 고유 문자 수와 바이트 크기의 코드 크기입니다. 가장 아픈 것이 승리합니다.
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy
. 1906 년생. 괜찮을까요?
Rear Admiral Grace Murray Hopper
그래도 괜찮을거야 코드 크기에 이름의 고유 문자 수를 곱하면 이름이 길어질 필요는 없습니다.