โปรแกรมนี้ใช้คู่ [คำตอบของนักเรียนคำตอบที่ถูกต้อง] เป็นอินพุตและใช้ช่องว่างเพื่อระบุคำตอบที่หายไป
โปรแกรมนี้ใช้รูปแบบอินพุตภายในที่แปลกประหลาดบางอย่างเพื่อติดตามสิ่งที่เกิดขึ้นดังนั้นเราจะดำเนินการทีละขั้นตอน
Z
นี่เป็นการแปลงอินพุตดังนั้นเราจะจบลงด้วยรายการ 25 องค์ประกอบหนึ่งรายการสำหรับแต่ละคำถาม แต่ละองค์ประกอบมีรูปแบบ [คำตอบของนักเรียนคำตอบที่ถูกต้อง] เราจะระบุองค์ประกอบของแบบฟอร์มนี้ด้วยอักษรตัวใหญ่; Aสำหรับคำถามที่ 1 Bสำหรับคำถามที่ 2 และอื่น ๆ ดังนั้นคำตอบจะถูกเก็บไว้เป็น
ABCDEFGHIJKLMNOPQRSTUVWXY
m0
นี่เป็นการดำเนินการ "palindrome ที่มากกว่า" เราผนวกการย้อนกลับของค่าปัจจุบันกับค่าของมันเองโดยให้สิ่งนี้:
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ṁ135
ตัวดำเนินการṁ(โมลด์) ทำสิ่งต่าง ๆ มากมาย แต่ในบริบทนี้มันใช้องค์ประกอบ 135 รายการแรกของรายการที่ไม่มีที่สิ้นสุดที่สร้างขึ้นโดยผนวกค่าปัจจุบันเข้ากับตัวเองอย่างต่อเนื่อง ที่ให้เราต่อไปนี้ (ซึ่งฉันแบ่งออกเป็น 50 กลุ่มเพื่อความสะดวกนี่เป็นเพียงรายการภายใน 135 คู่ภายใน):
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
µ;
µตั้งค่าปัจจุบันเป็นค่าเริ่มต้นใหม่สำหรับตัวถูกดำเนินการหายไป จากนั้นเราจะเห็นตัวบิวอินในทันทีที่ไม่มีตัวถูกดำเนินการ ;ผนวก แต่เราไม่ได้ระบุสิ่งที่จะผนวก ดังนั้นค่าปัจจุบันจะถูกผนวกเข้ากับค่าล่าสุดµ(ซึ่งเป็นค่าปัจจุบันด้วย) ทำให้เรามีค่าปัจจุบัน 270 องค์ประกอบต่อไปนี้:
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQP
t€⁶
โปรดจำไว้ว่าตัวพิมพ์ใหญ่ทั้งหมดข้างต้นแสดงถึงคู่ของ [คำตอบของนักเรียนคำตอบที่ถูกต้อง] การt€⁶ทำงานดำเนินการกับแต่ละ ( €) คู่และลบ ( t) ช่องว่าง ( ⁶) จากทั้งสองด้านของคู่ (เช่นช่องว่างใด ๆ ที่ปรากฏในคู่) ดังนั้นเราจึงยังคงมีรายการคำถามที่ซับซ้อนจำนวน 270 คำถามที่มีการทำซ้ำหลายครั้ง แต่พวกเขาอยู่ในรูปแบบ [คำตอบที่ถูกต้อง] (นักเรียนไม่ตอบ) หรือ [คำตอบของนักเรียนคำตอบที่ถูกต้อง] (นักเรียนตอบแล้ว)
E€’
การE€’ดำเนินการยังดำเนินการกับแต่ละ€องค์ประกอบ( ) และเนื่องจากการใช้Eแทนที่องค์ประกอบด้วย 1 หากองค์ประกอบทั้งหมดมีค่าเท่ากัน (เช่นนักเรียนไม่ได้ตอบหรือมีคำถามถูก) หรือ 0 ถ้าไม่ใช่ทั้งหมด องค์ประกอบเท่ากัน (เช่นนักเรียนตอบ แต่ได้คำถามผิด) การใช้’ที่นี่เปลี่ยนตัวเลขซึ่งหมายความว่าตอนนี้เราใช้ -1 หรือ 0 ตามลำดับ ฉันจะใช้ตัวอักษรพิมพ์เล็กสำหรับองค์ประกอบประเภทใหม่นี้ซึ่งใช้ -1 สำหรับคำตอบซึ่งจะถูกลงโทษหากเป็นคำถามที่มีโทษหรือ 0 สำหรับคำตอบที่หายไปหรือถูกต้อง:
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqpabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqp
;E€
เราเคยเห็นทั้งก่อนE€และ;หลัง; เรากำลังต่อท้ายบางอย่างกับค่าปัจจุบันและเราใช้รูปแบบ 1 ถ้าองค์ประกอบทั้งหมดเท่ากันหรือ 0 ถ้าบางอย่างแตกต่างกัน (ไม่มี’ในเวลานี้!) มีตัวถูกดำเนินการที่ขาดหายไปที่นี่ดังนั้นเราจึงใช้ค่าล่าสุดµ(เช่นผลลัพธ์ของขั้นตอนที่ 3) ย้อนกลับไปในขั้นตอนที่ 3 เราไม่ได้ลบช่องว่างออกจากองค์ประกอบดังนั้นเราจะมี 1 สำหรับคำตอบที่ถูกต้องหรือ 0 สำหรับคำตอบที่ไม่ถูกต้องหรือขาดหายไป (เนื่องจากช่องว่างไม่ตรงกับคำตอบที่ถูกต้อง) จากนี้ไปฉันจะใช้ตัวพิมพ์ใหญ่สำหรับ 1 = ถูกต้อง, 0 = รูปแบบที่ไม่ถูกต้อง / หายไปและใช้ตัวอักษรตัวพิมพ์เล็กต่อไปสำหรับ 0 = ถูกต้อง / หายไป, -1 = ไม่ถูกต้อง ค่าผลลัพธ์มีองค์ประกอบ 405 รายการและมีลักษณะดังนี้:
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqpabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqpABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQP
ṫ⁹
นี่เป็นเรื่องบังเอิญที่น่าอัศจรรย์ที่ฉันพูดถึงมาก่อน ก่อนที่จะพูดถึงรหัสบิตนี้ฉันต้องการเก็บสต็อคที่เราต้องไป
อักษรตัวใหญ่แต่ละตัวแทน +1 สำหรับคำตอบที่ถูกต้อง 15 คำถามแรก ( Aผ่านO) ปรากฏขึ้น 5 ครั้งในแต่ละข้อความและ 10 คำถามสุดท้าย ( Pผ่านY) ปรากฏขึ้น 6 ครั้งต่อคำถาม บิตนั้นไม่ได้วิเศษจริงๆ ฉันออกแบบมันอย่างนั้นเมื่อฉันเลือกหมายเลข 135 ก่อนหน้านี้ในโปรแกรม (ซึ่งคือ 5 × 15 + 6 × 10) และจังหวะแห่งโชคเดียวที่นี่คือ 5 เกิดขึ้นเป็นเลขคี่ (ดังนั้นจึงเป็น 10 ครั้งสุดท้าย คำถามที่ปรากฏในช่วงต่อเวลาพิเศษมากกว่า 10 ข้อแรก) 15 ตัวอักษรทันทีก่อนหน้านี้มีpผ่านt(คำถาม -1 โทษ) ครั้งและuผ่านy(คำถาม -2 โทษ) สองครั้ง นั่นไม่ใช่เรื่องบังเอิญเช่นกัน เพราะเราใช้m0ก่อนหน้านี้สำเนาเพิ่มเติมของคำถามอยู่ในลำดับPQRSTUVWXYYXWVUTSRQPและคำถามที่ตามมาจะเกิดขึ้นใกล้กับกึ่งกลางของสตริงนั้น (ดังนั้นการใช้คำถาม "พิเศษ" 15 ข้อสุดท้ายจะทำให้ซ้ำคำถามที่ใกล้ขอบน้อยลงและ แน่นอนว่าไม่ใช่คำถามที่น่าแปลกใจว่าคำถามพิเศษจะมาเป็นคำถามสุดท้าย
เนื่องจากตัวอักษรตัวเล็กแต่ละตัวลบ 1 จากคะแนนสำหรับคำตอบที่ไม่ถูกต้องและไม่หายไปและตัวอักษรตัวพิมพ์ใหญ่แต่ละตัวเพิ่ม 1 คะแนนสำหรับคำตอบที่ถูกต้องดังนั้นเราจึงจำเป็นต้องใช้องค์ประกอบ 135 + 15 = 150 ครั้งสุดท้ายเพื่อให้ได้ องค์ประกอบแต่ละประเภทมีจำนวนครั้งที่ถูกต้อง คำสั่งของวุ้นสำหรับการรับสายอักขระย่อยที่ส่วนท้ายของรายการคือṫ; อย่างไรก็ตามมันไม่ได้ระบุจำนวนองค์ประกอบที่คุณต้องการ แต่เป็นดัชนีขององค์ประกอบแรกที่คุณต้องการ เรามีองค์ประกอบ 405 ณ จุดนี้และต้องการ 150 ดังนั้นเราต้องเริ่มที่ดัชนี (405 - 150 + 1) หรือ 256 ในเรื่องบังเอิญที่น่าทึ่ง 256 เกิดขึ้นเป็นจำนวนออคเต็ตที่แตกต่างกันซึ่งมีอยู่ การเป็นตัวแทนระยะสั้นใน Jelly (⁹) มีน้อยมากที่ฉันสามารถทำได้เพื่อทำให้สิ่งนี้เกิดขึ้น; ขั้นตอนที่ 4 เพิ่มองค์ประกอบอีก 135 รายการเข้าไปที่จุดเริ่มต้นของรายการเพื่อให้ได้จำนวนรอบ แต่ความจริงที่ว่ามันคือ 135 องค์ประกอบที่ฉันต้องเพิ่ม (ค่าที่พร้อมใช้งาน ณ จุดนั้นในโปรแกรม) นั้นสะดวกมาก โดยพื้นฐานแล้วหมายเลขอื่นใดที่ไม่ช่วยเหลืออย่างสมบูรณ์ในสถานการณ์นี้
นี่คือลักษณะของค่าภายในตอนนี้:
uvwxyyxwvutsrqpABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
ONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
ONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
S
ในที่สุดตอนนี้เราได้รับรายการการแก้ไขคะแนนจากคำถามทั้งหมดที่เราต้องทำคือการรวมคะแนนพวกเขาใช้Sและเราเสร็จแล้ว