กล่าวทักทายผู้บุกเบิกวิทยาศาสตร์คอมพิวเตอร์


30

เลือกนักวิทยาศาสตร์คอมพิวเตอร์ที่มีชื่อเสียงที่คุณชื่นชอบหรือเป็นผู้บุกเบิกด้านวิทยาศาสตร์คอมพิวเตอร์ที่เกิดในปี 1942 หรือก่อนหน้า (ในปี 1943 นับเป็นจุดเริ่มต้นของการสร้างคอมพิวเตอร์ 'แรก' ) พวกเขาควรมีหน้า Wikipedia หรือเว็บไซต์อื่น ๆ ที่แสดงรายการปีเกิดและบอกว่าความสำเร็จของพวกเขาเกี่ยวข้องกับวิทยาศาสตร์คอมพิวเตอร์อย่างไร คุณอาจเลือกแบบเดียวกันกับคนอื่น แต่เลือกคนใหม่ที่ได้รับการสนับสนุน

ใช้ชื่อที่พวกเขารู้จักกันโดยทั่วไป นี่น่าจะเป็นชื่อและนามสกุล แต่อาจมีตัวย่อหรือชื่อกลางหากเป็นชื่อสามัญ ตัวอย่างเช่นสำหรับTony Hoareทั้งสองTony HoareและC. A. R. Hoareจะเป็นที่ยอมรับ

ทุกตัวอักษรในชื่อจะต้องเป็นASCII พิมพ์ หากชื่อมีอักขระที่ไม่สามารถพิมพ์ได้ ASCII ก็ใช้ได้ถ้าคุณเลือกบางอย่างโดยประมาณ เช่นแทนKurt GodelKurt Gödel

ใช้ชุดของตัวละครที่ไม่ซ้ำกันในชื่อ (เช่นC. ARHoare) และเลื่อนระดับ ASCII ที่พิมพ์ได้โดยปีเกิดของนักวิทยาศาสตร์ของคุณวนไปรอบ ๆ จาก~พื้นที่ (โดยทั่วไปจะเพิ่มปีเกิด 95 โมดูโล) สิ่งนี้จะทำให้คุณมีชุดอักขระ ASCII ที่พิมพ์ได้ (ส่วนใหญ่)

ยกตัวอย่างเช่น CAR โฮร์เกิดในปี 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($25Hello, C. A. R. Hoare!

เกณฑ์การให้คะแนน

คะแนนของคุณคือขนาดรหัสของคุณเป็นไบต์คูณด้วยจำนวนอักขระที่ไม่ซ้ำกันในชื่อที่คุณเลือก เจ็บน้อยที่สุดชนะ


6
ยกตัวอย่างเช่นฉันจะเลือกMuḥammad ibn Mūsā al-Khwārizmīและใช้ชื่อ ASCII-fication ที่สมเหตุสมผลเช่น Muhammad ibn Musa al-Khwarizmi ซึ่งเป็นที่ยอมรับหรือไม่
ymbirtt

3
Rear Admiral Grace Murray Hopper, United States Navy, (Retired), Doctor of Philosophy. เกิดปี 2449 แล้วจะเป็นอะไรมั้ย
Bill Woodger

2
@BillWoodger ฉันคิดว่ามันค่อนข้างยืด Rear Admiral Grace Murray Hopperแม้ว่าฉันจะโอเคกับ โปรดจำไว้ว่าขนาดรหัสของคุณจะถูกคูณด้วยจำนวนอักขระที่ไม่ซ้ำกันในชื่อเพื่อให้ชื่อที่ยาวขึ้นนั้นไม่จำเป็นต้องดีกว่า
งานอดิเรกของ Calvin

5
@ Calvin'sHobbies โอ้โห คิดว่าเป็นกรวดบนหน้าจอของฉัน
จัสติน

2
แล้วพี่ CDR Hoare ของ CAR Hoare ล่ะ?
David Conrad

คำตอบ:


8

โรคนอนไม่หลับ, 103 99 98 * 8 = 784

George Boole , 1815

โปรแกรมทั้งหมด 5 รายการด้านล่างมีความยาวเท่ากัน (98) และมีเอาต์พุตเหมือนกัน

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

พิมพ์ Hello, George Boole!

นอนไม่หลับ 103 * 6 = 618 (อาจดีที่สุดและไม่ซ้ำกัน)

ถ้าG Boole( George Boole , 1815) เป็นที่ยอมรับ ...

ooyoyoLoyyoyoyyLyoyoooLLoyooyyLoyyyoLooyoyoooooLyoyyoLoyoyyyoLooyyyooLoyoyooooLLyyooyoyoLyoyoooLoyooooL

พิมพ์ Hello, G Boole!


โรคนอนไม่หลับ, 94 92 89 85 83 * 10 = 830

Kurt Godel, 2449

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

พิมพ์ Hello, Kurt Godel!

ฉันเขียนโปรแกรมเพื่อค้นหาวิธีแก้ปัญหา โปรแกรมรุ่นที่สองของฉันควรใกล้เคียงกับรุ่นที่เหมาะสมที่สุดกว่ารุ่นแรกของฉัน

ตาม nitpick ของ @Martin Büttner ( 100 92 88 85 ตัวอักษรชุดอักขระเดียวกัน):

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

พิมพ์ Hello, Kurt Goedel!

ล่าม


คุณสามารถรวมไว้ในคำตอบของคุณเองและซ่อนไว้โดยค่าเริ่มต้น
เครื่องมือเพิ่มประสิทธิภาพ

2
nitpick: ทับศัพท์ที่ถูกต้องของการใช้เพียงตัวอักษรละตินเป็นGödel Goedel;)
Martin Ender

@Optimizer: ฉันมีคำตอบอีกคำที่ใช้ Insomnia ด้วยดังนั้นฉันจึงใส่ไว้ในหัวข้ออื่น
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
ฉันรู้ แต่มันจะใช้พื้นที่มากพอ ๆ กับลิงก์ไปยังล่ามและคุณสามารถเก็บข้อมูลโค้ดไว้ในคำตอบที่คุณต้องการ นั่นคือจุดประสงค์ของตัวอย่าง! :)
เครื่องมือเพิ่มประสิทธิภาพ

15

CJam, 230 117 115 114 113 110 107 106 ไบต์ * 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

ทดสอบที่นี่

ฉันเลือกEdsger Dijkstraเกิดปี 1930 ซึ่งให้ฉันc#2&$1>b()* 3(คนที่ฉันเลือกจริงๆเพราะเขาเป็นคนแรกที่ฉันพบว่าชื่อที่ให้ผลตัวละครที่มีประโยชน์สำหรับ CJam; ฉันได้ตรวจสอบชื่อโหลตั้งแต่ไม่มีใครดูมีแนวโน้ม)

รหัสพื้นเพียงสร้างรหัส ASCII โดยใช้1, 2, 3,* , #(ยกกำลัง) และ(, )(ลดลง, เพิ่มขึ้น) cและแปลงให้กับตัวละครด้วย หากต้องการบันทึกตัวอักษรบางตัวบางครั้งผมก็สามารถคัดลอกตัวอักษรก่อนหน้านี้ด้วย$( 0$สำเนาองค์ประกอบบนกอง1$สำเนาองค์ประกอบสแต็คที่สองไปด้านบนและอื่น ๆ )

นี่คือการแบ่งรหัสเป็นอักขระ (ซึ่งสามารถรันได้เช่นกัน):

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

ฉันเลือกR Kowalski, 1941ที่อนุญาตให้ฉันใช้:{It9A+6=53

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

อันนี้ค่อนข้างซับซ้อนกว่าคำตอบเก่า (ด้านล่าง) เนื่องจากหินอ่อนจำนวนมากผ่านอุปกรณ์หลายชิ้นส่วนหินอ่อนทั้งหมดส่วนใหญ่มีเพียงบางสิ่งที่เพิ่มเข้าไปก่อนที่จะพิมพ์ เนื่องจากฉันไม่ได้มีการลบหรือตัวเลขที่ต่ำรหัส ASCII ที่ต่ำกว่าจึงต้องถูกสร้างขึ้นโดยการเพิ่มโดยการรวมหินอ่อนสองลูกที่มีมูลค่าสูงเนื่องจากผลลัพธ์นี้ยังเพิ่มเติมโมดูโล (ฉันเคยใช้=3เป็นตัวเบี่ยงเพราะมันผลักหินอ่อนทุกตัวไม่เท่ากับ 3 ทางขวาและดูเหมือนแมวน่ารัก)

เอาท์พุท:

Hello, R Kowalski!

คำตอบเก่า:

Marbelous , 113 * 17 = 1921

Marbelous ทำได้ดีที่นี่เนื่องจากหินอ่อนที่ตกลงมาจากกระดานจะถูกพิมพ์เนื่องจากธรรมชาติของมันถึงแม้ว่ามันจะต้องใช้ตัวเลขสองสามตัว + เลขคณิตบางตัวเพื่อไม่ให้โบราดมีขนาดใหญ่เกินไป

ฉันเลือกPhilip D. Estridge, 1937ผู้ที่ให้ผลu./26EiSj9:8*-+เป็นชุดอักขระที่มีอยู่ ตัวละครที่ใช้จริงคือ.+-245689E

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

บอร์ดค่อนข้างง่าย 3 แถวแรกเป็นตัวอักษรกลุ่มที่เคยเป็นสองคือค่าเลขฐานสิบหกแถวที่สี่เป็นการดำเนินการทางคณิตศาสตร์เพื่อสร้างรหัส ascii ที่ไม่สามารถเขียนได้อย่างชัดเจนเนื่องจากชุดอักขระที่ จำกัด

เอาท์พุท:

Hello, Philip Donald Estridge!

คุณสามารถลองได้ที่นี่!

ตอนนี้ฉันจะมองหาผู้สมัครที่ดีกว่าที่เป็นไปได้เพราะดูเหมือนว่าอาจจะเป็นการแข่งขันที่น่ากลัวจริง ๆ ที่นี่


ไม่แน่ใจว่าย่อชื่อถือว่ายอมรับได้หรือไม่
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ ฉันใช้ชื่อเริ่มต้นแทนที่จะเป็นชื่อเต็มดูเหมือนว่าเป็นธรรม
overactor

ฉันสามารถทำได้G Booleกับ 105 ตัวอักษร * 6 - ฉันคิดว่าควรจะมีข้อ จำกัด เกี่ยวกับจำนวนที่สามารถย่อให้สั้นได้
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

3
ดูเหมือนว่าโปรแกรมของคุณจะไม่ทำงานหากไม่มีบรรทัดใหม่ คำถามไม่อนุญาตให้ใช้อักขระบรรทัดใหม่อย่างชัดเจนUsing 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

เพียงแค่มีภาษาอื่นที่ไม่ใช่ CJam ต้องการสเป็คดั้งเดิม Brainfuck พร้อมกับประเภทข้อมูลไบต์ซึ่งล้นที่ 256

ใช้อักขระ 2 ตัวเท่านั้น: +เพื่อเพิ่มเซลล์ปัจจุบันและ.เพื่อส่งออกเซลล์ปัจจุบัน

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

เอาท์พุต

Hello, John McCarthy!

เครดิตไปที่ Coredump เพื่อเปิดเผยสิ่งต่อไปนี้ในคำตอบของเขา:

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

เอาต์พุตดูเหมือนจะไม่มีเครื่องหมายอัศเจรีย์!
trichoplax

1
@ githubphagocyte ขอบคุณตอนนี้ได้รับการแก้ไขแล้ว!
เลเวลริเวอร์เซนต์

ฉันดีใจที่มันช่วย
coredump

5

"สวัสดี Niklaus Emil Wirth!" (Befunge-98, 222 × 14 = 3108)

จากวิกิพีเดีย :

Niklaus Emil Wirth (เกิดเมื่อวันที่ 15 กุมภาพันธ์ พ.ศ. 2477) เป็นนักวิทยาศาสตร์คอมพิวเตอร์ชาวสวิสซึ่งเป็นที่รู้จักกันดีในการออกแบบภาษาการเขียนโปรแกรมหลายภาษารวมถึง Pascal และเป็นผู้บุกเบิกหัวข้อคลาสสิคในวิศวกรรมซอฟต์แวร์ ในปี 1984 เขาได้รับรางวัลทัวริงเพื่อพัฒนาลำดับของภาษาคอมพิวเตอร์ที่เป็นนวัตกรรม

ด้วยการเปลี่ยน 34, Niklaus Emil Wirth(18 ตัวอักษร, 14 ที่ไม่ซ้ำกัน) สิ้นสุดลงp,./$86Bg0,/By,57+สิ้นสุดขึ้นเป็น

รหัส ( ลองที่นี่ ):

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

ทำให้พังถล่ม:

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)

บรรทัดสุดท้ายวางอักขระ HALT ( @) ที่จุดเริ่มต้นของบรรทัด เมื่อตัวควบคุมล้อมรอบกลับไปที่จุดนี้โปรแกรมจะหยุดทำงาน สิ่งนี้ไม่จำเป็นจริง ๆ เพราะ@อักขระที่ (5,0) ยังคงอยู่ที่นั่นและไม่มีสิ่งใดที่ควรส่งออกก่อนถึง อย่างไรก็ตามล่าม Befunge ออนไลน์เพียงรายเดียวที่จะเรียกใช้สิ่งประหลาดนี้จะไม่สามารถทำงานได้อย่างถูกต้องหากไม่มีมัน

มันเป็นจริงไปได้ที่จะทำให้การแก้ปัญหาการทำงานที่มีเพียงNiklaus Wirth(12 ตัวอักษรที่ไม่ซ้ำกันp,./$86By,57+) แต่รหัสมากมากอีกต่อไป

(ติดแท็กเป็น Befunge-98 เพราะ Befunge-93 จำกัดความกว้าง 80 ตัวอักษร)


4

CJam, 323 ไบต์ * 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

เอาท์พุท:

Hello, C. A. R. Hoare!

CJam, 662 ไบต์ * 10 = 6620 8700

ที่จะไม่ชนะ แต่เพียงเพราะมันเป็นไปได้ 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

เอาท์พุท:

Hello, C. A. R. Hoare!

เครื่องกำเนิดไฟฟ้า

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

คำตอบเล็กน้อย222(((((((((((c(สร้างโดยq{i222_@-'(*'c}%) มี 3420 ไบต์


ว้าวฉันไม่รู้ว่าคุณสามารถใช้e_ตัวอักษรนอกตัวเลขได้
Martin Ender

คุณได้ตรวจสอบว่าคุณสามารถได้รับต่ำโดยใช้ซ้ำของ2? หรือโดยการใช้ตัวละครอื่น ๆ (มีประโยชน์) B, 5และ$? (เช่นคุณจะได้รับที่สองไปยังพื้นที่ที่สี่และงวดที่สองและสามด้วย2$เช่นเดียวกับAที่มี2$((.)
มาร์ตินเอนเดอร์

@ MartinBüttnerพยายามตีกอล์ฟด้วยมือ แต่มันดูซับซ้อนเกินไป บางทีฉันอาจจะเขียนโปรแกรมเพื่อทำในภายหลัง แต่นี่จะไม่ชนะต่อไป
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

แสดง:

Hello, Arthur John Robin Gorell Milner!

นี่เป็นคำตอบแรกของฉันในการใช้ CJam ดังนั้นแน่นอนว่านี่สามารถเล่นกอล์ฟได้ดีขึ้น


นี่คือรหัสอรรถประโยชน์ที่ฉันใช้ เนื่องจากฉันคำนวณชุดอักขระสำหรับชื่ออื่นนี่อาจเป็นประโยชน์สำหรับคนที่รู้จัก CJam ดีกว่า (หรืออาจเป็นภาษาอื่น)

  • ค้นหาชุดอักขระพร้อมกับจำนวนอักขระที่ไม่ซ้ำกัน
(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)))))
  • กำหนดรายการของตัวเลขที่รู้จักกันดี
(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))
  • คำนวณชุดอักขระที่พิมพ์ได้ที่อนุญาตจัดเรียงตามขนาดของชุด
(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

ฉันรวบรวมข้อมูลจาก Wikipedia แล้ว รายชื่อนักวิทยาศาสตร์คอมพิวเตอร์ของและรวบรวมวันเกิดและชื่อที่ยาวที่สุดของคนทั้งหมดที่อยู่ในรายการ ฉันเขียนโปรแกรมเพื่อเรียกใช้สิ่งเหล่านี้และพบสิ่งใดที่ฉันสามารถทำได้ในภาษากลาง น่าเศร้าที่ฉันไม่สามารถหาชื่อใด ๆ ที่ได้รับการสนับสนุนecho;, alert(), console.log()(ฉันสามารถหวัง) หรือprintmain

ผมส่วนใหญ่ต้องการที่จะแบ่งปันข้อมูลที่รวบรวมข้อมูลดิบของฉันในกรณีที่คนอยากจะทำนองเดียวกันการค้นหาสำหรับภาษาอื่น ๆ (หมายเหตุ: อาจไม่ถูกต้องและไม่สมบูรณ์): ข้อมูลการรวบรวมข้อมูล

แก้ไข : วางการรวบรวมข้อมูลใหม่ที่มีชื่อใหม่ประมาณ 40 ชื่อรายการของคอมพิวเตอร์คนและรายการของผู้บุกเบิกในสาขาวิชาวิทยาการคอมพิวเตอร์

แก้ไข : ล้างรายการด้วยตนเอง

ฉันพบว่าJean David Ichbiah (1940) หัวหน้านักออกแบบของ Ada ให้บริการ+-.(สั้นที่สุดในสามคนที่จะทำ) ฉันสร้างรหัส BF นี้สำหรับเขา

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

Alexander Keewatin Dewdneyให้ตัวละคร BF ที่ใช้ได้มากที่สุด ( +.<>) แต่มาเหนือคำตอบของฉันเล็กน้อย .[]ไม่มีใครผมพบว่ามีให้


1
ข้อมูลการรวบรวมข้อมูลบางส่วนนั้นผิดอย่างแน่นอน ฉันได้พบกับ Sir Maurice Wilkes: เขาอายุ แต่ไม่ถึง 900 ปี
Peter Taylor

ฉันใช้การส่งผ่านแบบแมนนวลและแก้ไขบางส่วนและพบว่ามีหลายวันที่บอทไม่สามารถรับได้เลย ถึงแม้ว่าจะไม่ได้ผลลัพธ์ใหม่สำหรับฉันก็ตาม
BMac

4

ทับทิม 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

ตัวละครที่มี:

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

เอาท์พุท:

"Hello, Anatolii Alexeevich Karatsuba!"

Anatolii Karatsubaเกิดปี 1937 เป็นที่รู้จักกันดีที่สุดสำหรับการมีส่วนร่วมของเขาในสาขาทฤษฎีการวิเคราะห์เชิงตัวเลข (สาขาที่ฉันชอบเป็นการส่วนตัว) รวมถึง Karatsuba Algorithmซึ่งเป็นวิธีการคูณอย่างรวดเร็วของตัวถูกดำเนินการความแม่นยำโดยพลการ

นี่เป็นชื่อแรกและชื่อเดียวที่ฉันพยายาม


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

การสาธิตออนไลน์

ดักลาส Engelbart (1925 - 2013) อาจจะเป็นที่มีชื่อเสียงมากที่สุดสำหรับ"แม่ของทุกชวล" ชื่อและปีเกิดของเขาให้ตัวละคร!&(),-./9]^z{~ซึ่งวิธีนี้ใช้&()-./9]^~

โครงสร้างพื้นฐานของรหัสคือbuild list of numbers](-ใส่ตัวเลขจำนวนมากในอาร์เรย์ด้วยสตริงว่างที่เริ่มต้นบนสแต็กจากนั้นดึงสตริงนั้นออกมาและใช้กับการเลื่อนระดับประเภท-เพื่อเปลี่ยนอาร์เรย์ของตัวเลขเป็นสตริง

เนื่องจากไม่มีการเข้าถึงองค์ประกอบด้านล่างด้านบนสุดของสแต็กฉันจึงเขียนโปรแกรม C # เพื่อค้นหาตัวอย่างสั้น ๆ ที่ใช้จำนวนเต็มที่กำหนดที่ด้านบนสุดของสแต็กและเพิ่มจำนวนเต็มถัดไปที่ต้องการ เรื่องนี้สร้างปัญหาเล็ก ๆ หนึ่งเมื่อตัวอย่างข้อมูล69( E) จบลงด้วย-และตัวอย่างข้อมูล110( n) เริ่มต้นด้วย9: 110ค่าใช้จ่ายอย่างใดอย่างหนึ่งที่จะใช้ถ่านตัวอย่างอีกต่อไปสำหรับ


2

CaneCode , 458 410 * 16 = 7328 6560

11111111111111111111111111111111111111111111111111111111111111111111111184111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118111111188111841111111111111111111111111111111111111111111182222222222228331184222222222222228118111111118483322222841811111111822222828483322284111182222222222222811111111111111822222222222222811111111182222228222222281111111111118418

BF ที่สอดคล้องกัน:

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

ขาออก:

Hello, Jack Elton Bresenham!

CaneCode เป็นเพียงสัญลักษณ์ทดแทนโดยตรงของ Brainfuck ซึ่ง12348สอดคล้องกับ+-><.ตามลำดับ ฉันใช้เวลาประมาณ 2 ชั่วโมงพยายามหาชื่อสั้น ๆ ที่ให้มา+-.ไว้กับ Brainfuck ปกติโดยไม่ประสบความสำเร็จ

Jack Elton Bresenhamผู้ประดิษฐ์อัลกอริธึมไลน์ของ Bresenham และเกิดในปี 1937 ให้อักขระต่อไปนี้:

o')1Ej2:54g8+9.3

น่าเสียดายที่ในขณะที่5( [) พร้อมใช้งานการไม่มี6( ]) หมายถึงว่ารหัสยังต้องเพิ่มพื้นที่ 100-ish (สำหรับตัวพิมพ์เล็ก) ด้วยวิธีที่ช้า


2

> <> (ปลา) , 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;

ขาออก:

Hello, Ivar Hjalmar Jacobson!

Ivar Jacobson ลมาร์ , เกิดปี 1939 ก็พบว่าต้องขอบคุณข้อมูลที่รวบรวมข้อมูลของ BMAC เขาจัดเตรียมตัวอักษร

)*+24567:;>Gopq

> <> เช่น Befunge เป็นภาษาสแต็ก 2D คำสั่งที่เป็นประโยชน์> <> คือ:

  • *+24567สำหรับเลขคณิต (โปรดสังเกตว่า47a 4และ a 7บนสแต็กไม่ใช่47)
  • )มากกว่า (มีประโยชน์สำหรับการรับ1)
  • : สำหรับการทำซ้ำด้านบนของสแต็ก
  • o สำหรับการส่งออก
  • ; สำหรับการยกเลิกโปรแกรม

pมันก็ดีสำหรับการไตร่ตรอง แต่ฉันก็ไม่สามารถคิดถึงการใช้ที่ดีสำหรับมันได้ >เป็นคำสั่งอื่น> <> ซึ่งควบคุมทิศทางของโปรแกรมไปทางขวา แต่เนื่องจากโปรแกรมดำเนินการไปในทิศทางนั้นจึงไม่จำเป็น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.