ประมาณหนึ่งปีที่แล้วเมื่อวันที่ 31 ธันวาคม 2558 ฉันมีความคิดว่า:
ลูกบิดประตูเกล้าฯตัวอักษรที่เก็บรวบรวมจากPPCGชุมชนและเก็บไว้ที่ปลอดภัยสำหรับปี
มีคนเข้าร่วมมากถึง74 คนดังนั้นเราจึงมีตัวละครที่พิมพ์ได้-ASCII 74 อัน ที่น่าเล่น
นี่คือ 74 ตัวอักษรของสตริงแคปซูลเวลา 2016 ตามลำดับที่ส่งมา:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
นี่คือ 74 ตัวอักษรของสตริงแคปซูลเวลา 2016 ตามลำดับ ASCII (พื้นที่นำโน้ต):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
การทำงานกับมันมีไม่มากนัก แต่อยู่ที่นี่เราชอบความท้าทาย
ความท้าทาย
ในการพิจารณาว่าภาษาใด "ดีที่สุด" กับสตริงแคปซูลเวลาเราจะพบกับความท้าทาย6 (สำหรับ 201 6 ) ที่เพิ่มความยากลำบากซึ่งแต่ละครั้งคุณต้องใช้เซ็ตย่อยของอักขระแคปซูล 74 ครั้ง
การมี 6 ความท้าทายที่แตกต่างช่วยให้มั่นใจว่าภาษาจะสามารถแข่งขันได้มากขึ้น แต่มีเพียงภาษาที่ดีที่สุดเท่านั้นที่จะสามารถตอบคำถามเหล่านั้นทั้งหมดและให้คะแนนสูง
เกณฑ์การให้คะแนน:
- แต่ละความท้าทายจะได้คะแนนจาก 0 ถึง 74 ขึ้นอยู่กับจำนวนอักขระที่ใช้
- คะแนนที่สูงขึ้นจะดีกว่า
- หากภาษาของคุณไม่สามารถทำการท้าทายได้คะแนนของคุณสำหรับความท้าทายนั้นคือ 0
- ชุดย่อยใด ๆ ที่ไม่ได้รับการยกเว้นของความท้าทายอาจจะแล้วเสร็จ
- คะแนนสุดท้ายของคุณคือผลรวมคะแนนจากการท้าทายทั้ง 6 รายการ
- คะแนนสุดท้ายเป็นที่ดีที่สุด 6 × 74 หรือ 444
ความท้าทาย
1. เรียกใช้
หากรหัสของภาษาไม่สามารถทำงานในตอนแรกมันจะไม่สามารถทำอะไรได้เลย
เขียนโปรแกรมเต็มรูปแบบที่ยาวที่สุดเท่าที่จะเป็นไปได้ (ใช้เพียง 74 ตัวอักษรแคปซูลเวลาจำ) ที่ทำงาน / รันโดยไม่มีข้อผิดพลาดเวลารวบรวมหรือรันไทม์
ไม่สำคัญว่าโปรแกรมจะทำอะไรมันไม่สำคัญว่าจะมีอินพุต / เอาท์พุตหรือเข้าสู่ลูปไม่สิ้นสุดก็แค่เรื่องที่มันทำงานโดยไม่มีข้อผิดพลาด (คำเตือนก็โอเคเช่นเดียวกับข้อผิดพลาดที่เกิดจากการป้อนข้อมูลของผู้ใช้ไม่ดี)
อนุญาตให้แสดงความคิดเห็นดังนั้นอาจเป็นเรื่องง่ายเหมือนกัน
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
ใน Python ด้วยคะแนน 74
(อย่ากลัวที่จะตอบถ้านี่เป็นความท้าทายเพียงอย่างเดียวที่ภาษาของคุณสามารถทำได้ แต่อย่าคาดหวังว่าจะได้รับคะแนนเสียงมากมายเช่นกัน)
คะแนน = ความยาวของโปรแกรม (โปรแกรมที่ยาวกว่าดีกว่า)
2. I / O
ภาษาที่ไม่มีรูปแบบของอินพุตหรือเอาต์พุตเกือบไร้ประโยชน์อย่างที่ไม่สามารถทำได้
รับอักขระ ASCII ที่พิมพ์ได้จาก!
(0x33) ถึง}
(0x7D) รวมเอาท์พุทอักขระ ASCII ที่พิมพ์ได้ก่อนและหลัง
เอาต์พุตสามารถมีความยาวสองสตริงหรือรายการหรืออักขระคั่นด้วยช่องว่างหรือบรรทัดใหม่
ตัวอย่างเช่นถ้าใส่คือ}
การส่งออกอาจจะมี|~
หรือ["|", "~"]
หรือหรือ| ~
|\n~
ในทำนองเดียวกัน "
คือผลลัพธ์สำหรับ!
และเป็นผลลัพธ์สำหรับAC
B
คะแนน = 74 - ความยาวของโปรแกรม (โปรแกรมที่สั้นกว่าดีกว่า)
3. Branchability
เงื่อนไขมักเป็นข้อกำหนดสำหรับทัวริงครบถ้วนซึ่งมักเป็นข้อกำหนดสำหรับภาษาที่มีประโยชน์
รับจำนวนเต็มบวกถ้ามันลงท้ายด้วยเลขทศนิยม16
แล้วเปลี่ยน6
a 7
และเอาท์พุทผลลัพธ์; มิฉะนั้นเอาท์พุทอินพุตไม่เปลี่ยนแปลง คุณสามารถใช้สตริงสำหรับอินพุต / เอาท์พุตหากต้องการ
ตัวอย่าง:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
คะแนน = 74 - ความยาวของโปรแกรม (โปรแกรมที่สั้นกว่าดีกว่า)
4. ความสามารถในการวนซ้ำ
ภาษาที่ไม่สามารถวนซ้ำได้จะทำให้เกิดรหัสซ้ำ ๆ ดังนั้นคุณจะต้องหยุดพักการเขียนโปรแกรมสักพัก
กำหนดจำนวนเต็มบวกเอาท์พุทสี่เหลี่ยมจัตุรัส ASCII-art ของความยาวด้านนั้นเต็มไปด้วยรูปแบบของสี่เหลี่ยมจัตุรัสขนาดเล็กที่มีศูนย์กลางที่สลับกันระหว่างอักขระ ASCII ที่พิมพ์ได้สองตัวที่แตกต่างกัน ไม่จำเป็นต้องเป็นอักขระสองตัวเดียวกันสำหรับอินพุตที่ต่างกัน
ตัวอย่างเช่น:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
คะแนน = 74 - ความยาวของโปรแกรม (โปรแกรมที่สั้นกว่าดีกว่า)
5. คณิตศาสตร์
ภาษาที่ไม่ดีกับตัวเลขและคณิตศาสตร์อาจรวมถึงวิชาเอกมนุษยศาสตร์ด้วย
ไม่ต้องป้อนข้อมูลใด ๆ ยกเว้นเอาท์พุทตัวหารจำนวนเต็ม 72 ของปี 2559บวกและลบในลำดับใดก็ได้ เอาต์พุตสามารถจัดรูปแบบเป็นสตริงหรือรายการด้วยวิธีที่สมเหตุสมผล
ตัวอย่าง:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
คะแนน = 74 - ความยาวของโปรแกรม (โปรแกรมที่สั้นกว่าดีกว่า)
6. ความลึกลับ
(ไม่ไม่ใช่อย่างนั้น ) เราที่PPCGชอบสิ่งที่ลึกลับของเราและquinesเป็นตัวอย่างที่ดีของสิ่งนั้น
เขียนควินที่ยาวที่สุดที่คุณสามารถทำได้ตามกฎของควินินทั่วไป ควินินเป็นโปรแกรมที่ไม่มีอินพุตและเอาต์พุตเอง
คะแนน = ความยาวของโปรแกรม (โปรแกรมที่ยาวกว่าดีกว่า)
กฎเฉพาะ
- ในความท้าทายทั้ง 6 ข้อของโปรแกรมของคุณจะต้องเป็นชุดย่อยของตัวอักษรแคปซูลเวลา 74 ที่จัดเรียงใหม่ตามที่คุณต้องการ อาจเป็นเซตย่อยที่ว่างเปล่าหรือเซ็ตย่อยที่ไม่เหมาะสมดังนั้นแต่ละโปรแกรมของคุณอาจมี 0 และมีอักขระไม่เกิน 74 ตัว
- ขึ้นบรรทัดใหม่ที่ส่วนท้ายของอินพุต / เอาท์พุต / รหัสไม่เป็นไรที่ใดก็ได้เนื่องจากบางภาษาต้องการหรือไม่สามารถหลีกเลี่ยงได้ง่าย
- เว้นแต่จะระบุไว้แต่ละท้าทายอาจจะแล้วเสร็จตามฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบตามค่าเริ่มต้นของเรา
- ความท้าทายทั้งหมดจะต้องเสร็จสิ้นในภาษาเดียวกัน
- คุณต้องใช้ภาษา (หรือรุ่นของภาษา) ทำก่อนที่จะถูก 2017 ที่ใดก็ได้ในโลก
- ทุกคนยินดีที่จะตอบไม่ว่าคุณจะเพิ่มตัวละครในแคปซูลเวลาหรือไม่
อย่าลังเลที่จะใช้ตัวละครแคปซูลเวลา 2016 ในความท้าทายของคุณเอง
6×74 or 444
เป็นไปไม่ได้เพราะจะหมายถึงโปรแกรมที่ว่างเปล่าซึ่งอย่างใดทำงานแตกต่างกัน ด้วยเหตุนี้ 442 จึงเป็นค่าต่ำสุดที่แท้จริงซึ่งหมายความว่าโปรแกรมการป้อนข้อมูลสองใน 3 รายการมีอักขระในตัวพวกมัน