นี่คือ repost ของEvolution ของ“ Hello World!”ซึ่งเขียนโดย Helka Homba ผู้ใช้
มันไม่ควรจะปิดเป็นซ้ำเนื่องจากฉันทามติ meta ที่นี่
ต้นฉบับถูกถามเมื่อสองปีก่อนและใช้งานล่าสุดมากกว่าหกเดือนที่ผ่านมา ฉันได้รับอนุญาตจาก Helka Homba เพื่อโพสต์สิ่งนี้ที่นี่
ตั้งแต่ดั้งเดิมมีการประดิษฐ์หลายภาษาและหลาย ๆ คนได้เข้าร่วมเว็บไซต์ที่ไม่เคยมีโอกาสตอบต้นฉบับดังนั้นฉันรู้สึกว่า repost นี้เป็นที่ยอมรับ
ความท้าทายคือการสร้างโปรแกรมที่พิมพ์2^n
ไปยัง stdout ซึ่งn
เป็นหมายเลขของโปรแกรมของคุณ สิ่งที่จับได้คือโปรแกรมของคุณจะต้องมีระยะทาง Levenshtein 10 หรือน้อยกว่าจากโปรแกรมในคำตอบที่ส่งมาก่อนหน้าคุณ
มันจะทำงานยังไง
ด้านล่างนี้ผมจะส่งคำตอบแรกใช้ C # ซึ่งพิมพ์ 2 ^ (n = 1) 2
=
บุคคลต่อไปที่จะตอบต้องแก้ไขรหัสที่มีการแทรกการลบหรือการแทนที่อักขระสูงสุด 10 ตัวเพื่อให้เมื่อมีการเรียกใช้ในภาษาของคำตอบใหม่ระบบจะพิมพ์2^n
(โดยn
เป็นหมายเลขคำตอบ) ตัวอย่างเช่นคำตอบที่ 25 (สมมติว่าอยู่ใน Pyth) จะพิมพ์ 2 ^ 25 หรือ 33554432
สิ่งนี้จะดำเนินการต่อไปจนกว่าทุกคนจะติดขัดเพราะไม่มีภาษาใหม่โปรแกรมคำตอบสุดท้ายสามารถทำงานได้โดยการเปลี่ยนเพียง 10 ตัวอักษร เป้าหมายของชุมชนคือการดูว่าเราสามารถติดตามได้นานแค่ไหนดังนั้นอย่าพยายามแก้ไขตัวละครที่คลุมเครือหรือไม่เป็นธรรม (นี่ไม่ใช่ข้อกำหนด)
การจัดรูปแบบ
โปรดจัดรูปแบบโพสต์ของคุณเช่นนี้:
#Answer N - [language]
[code]
[notes, explanation, observations, whatever]
โดยที่ N คือหมายเลขคำตอบ (เพิ่มขึ้นทีละน้อย N = 1, 2, 3, ... )
คุณไม่จำเป็นต้องบอกว่ามีการเปลี่ยนแปลงอักขระที่แน่นอน เพียงตรวจสอบให้แน่ใจว่าระยะทางของ Levenshtein อยู่ระหว่าง 0 ถึง 10
หากคุณตอบเป็นภาษาหรือรหัสผลลัพธ์เป็นเพียงความยุ่งเหยิงโปรดอธิบายสิ่งที่คุณทำและทำไมจึงใช้งานได้แม้ว่าจะไม่จำเป็น
กฎระเบียบ
สิ่งสำคัญที่ต้องเข้าใจเกี่ยวกับความท้าทายนี้คือการที่บุคคลเพียงคนเดียวสามารถตอบในเวลาและแต่ละคำตอบขึ้นอยู่กับหนึ่งก่อนที่มันจะ
ไม่ควรมีสองคำตอบด้วย N เดียวกันหากคนสองคนเกิดคำตอบพร้อมกันสำหรับ N บางคนผู้ตอบในภายหลัง (แม้ว่าจะต่างกันสองสามวินาที) ก็ควรลบคำตอบของพวกเขาด้วยความกรุณา
นอกจากนี้ ...
- ผู้ใช้ไม่สามารถส่งคำตอบสองคำติดต่อกัน (เช่นเนื่องจากฉันส่งคำตอบ 1 ฉันไม่สามารถตอบได้ 2 แต่ทำได้ 3)
- พยายามหลีกเลี่ยงการโพสต์คำตอบมากเกินไปในกรอบเวลาอันสั้น
- แต่ละคำตอบจะต้องเป็นภาษาการเขียนโปรแกรมที่แตกต่างกัน
- คุณสามารถใช้ภาษาเวอร์ชันหลักที่แตกต่างกันเช่น Python 2/3
- ภาษานับว่าแตกต่างกันหากพวกเขาถูกเรียกแบบดั้งเดิมโดยชื่อที่แตกต่างกันสองคน (อาจมีความคลุมเครือบางอย่างที่นี่ แต่อย่าปล่อยให้สิ่งนั้นทำลายการแข่งขัน)
- คุณไม่ต้องติดกับ ASCII คุณสามารถใช้อักขระใด ๆ ที่คุณต้องการ Levenshtein ระยะทางจะมีการวัดใน Unicode ตัวอักษร
- ผลลัพธ์ควรมี
2^n
และไม่มีอักขระอื่น ๆ เท่านั้น (ช่องว่างนำหน้า / ต่อท้ายนั้นใช้ได้เนื่องจากเอาต์พุตที่ไม่สามารถเอาชนะได้เช่น>>>
หรือans=
) - หากภาษาของคุณไม่มี stdout ให้ใช้สิ่งที่ใช้กันทั่วไปเพื่อส่งข้อความออกอย่างรวดเร็ว (เช่น
console.log
หรือalert
ใน JavaScript) - เมื่อกำลังสองที่คุณต้องส่งออกมีขนาดใหญ่มากคุณอาจสมมติหน่วยความจำไม่สิ้นสุด แต่ไม่ใช่ขนาดเต็มจำนวน โปรดระวังจำนวนเต็มล้น
- คุณอาจใช้ประโยชน์จากสัญกรณ์ทางวิทยาศาสตร์หรือภาษาของคุณแทนตัวเลขได้อย่างเป็นธรรมชาติ (ยกเว้น unary ไม่ต้องเอาต์พุตเป็น unary)
โปรดตรวจสอบว่าคำตอบของคุณถูกต้อง เราไม่ต้องการที่จะรู้ว่ามีการแบ่งในห้าคำตอบ คำตอบที่ไม่ถูกต้องควรได้รับการแก้ไขอย่างรวดเร็วหรือถูกลบออกก่อนที่จะมีคำตอบเพิ่มเติม
อย่าแก้ไขคำตอบเว้นแต่จำเป็นจริงๆ
เกณฑ์การให้คะแนน
เมื่อสิ่งต่างๆสงบลงผู้ใช้ที่ส่งคำตอบที่ถูกต้องที่สุดจะชนะ ความสัมพันธ์ไปถึงผู้ใช้ที่มีคะแนนโหวตสูงสุดสะสมมากที่สุด
แก้ไขสิ่งเหล่านี้เมื่อคุณโพสต์คำตอบ:
ลีดเดอร์บอร์ด
13 ภาษา
Okx
8 ภาษา
เรือเหาะ
4 ภาษา
Pavel
Jonathan Allan
Kritixi Lithos
Riker3 ภาษา
boboquack
2 ภาษา
bmarks
Conor O'Brien
แตงโมที่ถูกทำลาย
ovs
Tom Carpenter1 ภาษา
ATaco
บล็อก
Dennis
dzaima
Erik the Outgolfer ETHproductions
ETHproductions
ghosts_in_the_code
Leo
Lynn
Matheus Avellar
Nathaniel
Qwerp-Derp
อาร์
เทย์เลอร์แคปสก็อตต์
nimi
Mistah Figgins
PidgeyUsedGust
steenbergh
ภาษาที่ใช้จนถึงปัจจุบัน:
- C # (พาเวล)
- /// (boboquack)
- จอประสาทตา (เดนนิส)
- เยลลี่ (Jonathon Allan)
- Pyth (boboquack)
- > <> (แตงโมที่ถูกทำลาย)
- Minkolang (Kritixi Lithos)
- Perl (Pavel)
- Python (Qwerp-Derp)
- dc (R. Kap)
- Charcoal (Jonathon Allan)
- BrainFuck การปรับเปลี่ยนตนเอง (Leo)
- SOGL (dzaima)
- ShapeScript (Jonathon Allan)
- Pyke (boboquack)
- ทับทิม (นาธาเนียล)
- 05AB1E (ovs)
- STATA (bmarks)
- bc (Kritixi Lithos)
- Japt (Okx)
- 2sable (Kritixi Lithos)
- Cheddar (Jonathon Allan)
- เสา (Okx)
- Bash (Zeppelin)
- เร่งด่วน (Okx)
- CJam (Erik the Outgolfer)
- MATL (Okx)
- MATLAB (ทอมคาร์เพนเตอร์)
- อ็อกเทฟ (Kritixi Lithos)
- R (ovs)
- JavaScript ES7 (Tom Carpenter)
- นูน (Okx)
- Mathematica (ghosts_in_the_code)
- พิพ (Okx)
- ซ้อนกัน (Conor O'Brien)
- GolfScript (Okx)
- จริงแล้ว (Lynn)
- RProgN (Okx)
- Scheme (bmarks)
- องค์ประกอบ (Okx)
- J (บล็อค)
- Cubix (ผลิตภัณฑ์ ETH)
- zsh (เรือเหาะ)
- VBA (เทย์เลอร์สกอตต์)
- ปลา (เหาะ)
- ตาข่าย (Okx)
- Perl 6 (Pavel)
- RProgN2 (ATaco)
- PHP (Matheus Avellar)
- Jolf (Conor O'Brien)
- Haskell (nimi)
- Befunge-98 (Mistah Figgins)
- Gnuplot (Zeppelin)
- QBIC (steenbergh)
- FOG (Riker)
- Qwerty-RPN (Okx)
- Korn Shell (ksh) (zeppelin)
- จูเลีย (ไรเคอร์)
- Python 3 (พาเวล)
- Vimscript (Riker)
- เส้นประ (Zeppelin)
- Vitsy (Okx)
- csh (เรือเหาะ)
- โอห์ม (Okx)
- Bosh (เรือเหาะ)
- es-shell (Riker)
- Gol> <> (PidgeyUsedGust)
คำถามนี้ทำงานได้ดีที่สุดเมื่อคุณจัดเรียงสินค้าที่เก่าแก่ที่สุด