เคล็ดลับการ์ดเวทย์มนตร์แรกที่ฉันได้เรียนรู้ตอนเป็นเด็กคือ:
- มีไพ่ 1 สำรับที่ลวดลายด้านหลังไม่สมมาตรในแนวตั้ง
- จัดระเบียบการ์ดทั้งหมดให้หันไปทางเดียว
- ขอให้คน ๆ หนึ่ง "หยิบการ์ดการ์ดใด ๆ จดจำและส่งคืนให้คุณ"
- ดำเนินการต่อเพื่อใส่ลงในสำรับ (ในทิศทางที่ผิด)
- สุ่มเล่นอย่างแรงโดยให้ภาพลวงตาว่าคุณจะไม่ทราบว่าการ์ดของพวกเขาอยู่ที่ไหน
- ผลิตบัตรของพวกเขาเพื่อความประหลาดใจของพวกเขา
เห็นได้ชัดว่าเคล็ดลับนี้ขาดความเป็นธรรมชาติเล็กน้อยในตอนนี้ต่อวันอย่างไรก็ตามมันเป็นเรื่องที่ท้าทาย เขียนโปรแกรมซึ่งเมื่อไม่มีการป้อนข้อมูลจะส่งสำรับไพ่แบบสุ่มที่มีการสับไพ่หนึ่งใบเลือกโดยสุ่มและสลับกลับ อย่างไรก็ตามเมื่ออินพุทเป็นสำรับไพ่ที่มีการ์ดหนึ่งใบกลับด้านคุณจะต้องส่งออกการ์ดที่กลับด้าน (ตามลำดับที่ถูกต้อง)
สำรับไพ่
สำรับไพ่ถูกกำหนดให้เป็น:
[2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS,
2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD,
2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH,
2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC]
การ์ดถูกกำหนดให้เป็นหมายเลขแล้วตามด้วยตัวอักษรตัวแรกของชุดสูท ด้านหลังของการ์ดเป็นสิ่งที่ตรงกันข้ามอย่างแท้จริงตัวอักษรตัวแรกของชุดตามด้วยหมายเลข
การ์ดจับรางวัล
ตัวอย่างถ้าบัตรที่เราเลือกสุ่มกลับเป็น4 of Clubs (4C)
เราก็จะจบลงด้วย (โดยไม่มีการสับชัด):
[2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS,
2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD,
2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH,
2C,3C,C4,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC]
The Shuffling
จากนั้นหลังจากการสับ:
[2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D]
นี่เป็นเอาต์พุตที่ถูกต้องที่ให้อินพุตว่าง
อินพุตเด็ค
แต่ตรงกันข้ามเมื่อโปรแกรมของเราได้รับการส่งออกดังกล่าวข้างต้นเป็น input 4C
ก็ควรเอาท์พุท กล่าวคือสำหรับการป้อนข้อมูลของ:
[2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D]
คุณวนซ้ำจนกว่าคุณจะพบการ์ดที่กลับด้านแล้วคืนกลับสู่สถานะปกติ ดังนั้นที่นี่เราจะพบC4
ว่ารู้ว่า C ไม่ได้เป็นจำนวนมากและส่งกลับเป็น4C
ซึ่งถูกต้อง
กฎระเบียบ
- คุณไม่สามารถโหลดเด็คจากแหล่งภายนอกได้
- อินพุตที่ว่างเปล่าควรส่งผลให้เกิดการสับแบบสุ่มโดยมีการ์ดสุ่ม 1 ใบกลับด้าน
- ชั้นของไพ่ที่มี 1 การ์ดที่กลับด้านเป็นอินพุตควรส่งผลให้การ์ดที่กลับด้าน
- ปัจจัยการผลิตอื่น ๆ อาจส่งผลให้ลามะระเบิดขี่ segways ผ่านหลอดอนาคต
- หรือสิ่งอื่นใดสำหรับเรื่องนั้น
- ทั้งการ์ดที่เลือกและคำสั่งสับจะต้องสุ่มอย่างสม่ำเสมอ
- IE การ์ดทั้งหมดมีโอกาสเท่ากันที่จะถูกเลือกให้กลับรายการ
- IE การ์ดทั้งหมดที่มีโอกาสปรากฏเท่ากัน
- คุณสามารถใช้
SHCD
หรือshcd
สำหรับชุดสูท แต่ต้องสอดคล้อง:- หากคุณเลือกชุดตัวพิมพ์ใหญ่ (
SHCD
) คุณต้องใช้TJQKA
ด้วย - หากคุณเลือกชุดตัวพิมพ์เล็ก (
shcd
) คุณต้องใช้tjqka
ด้วย
- หากคุณเลือกชุดตัวพิมพ์ใหญ่ (
- นี่คือโค้ดกอล์ฟผู้ชนะคือไบต์ต่ำสุด