แบล็คแจ็คหรือที่รู้จักกันในชื่อยี่สิบเอ็ดเป็นเกมไพ่เปรียบเทียบระหว่างคุณกับดีลเลอร์ซึ่งผู้เล่นแต่ละคนจะแข่งขันกับดีลเลอร์ แต่ผู้เล่นไม่ได้เล่นกันเอง
เล่นไปดังนี้ตัวแทนจำหน่ายเกี่ยวข้องกับการ์ด เจ้ามือจะแจกการ์ดให้ตนเองโดยคว่ำหน้าลง ตัวแทนจำหน่ายจะแจกไพ่ให้คุณอีกใบ ในที่สุดตัวแทนจำหน่ายแจกบัตรด้วยตนเองโดยหงายหน้าขึ้น
ท้าทาย
ความท้าทายของคุณคือการเขียนโปรแกรม (หรือฟังก์ชั่น) ที่เมื่อเรียกใช้ (หรือเรียกว่า) ผลลัพธ์ (หรือผลตอบแทน) ความน่าจะเป็นที่การ์ดใบต่อไปของเจ้ามือจะให้คุณจะทำให้คุณสะดุดซึ่งหมายถึงคะแนนสะสมของไพ่ในมือ เจ้ามือให้ไพ่ใบใหม่แก่คุณมากกว่า 21 ใบ
อินพุต
ไพ่สามใบที่มองเห็นได้ในการเล่น พวกเขาเป็นไพ่สองใบที่คุณมีในมือของคุณและไพ่ใบเดียวที่คุณเห็นในมือตัวแทนจำหน่าย สามารถอยู่ในรูปแบบใดก็ได้ที่คุณเห็นว่าเหมาะสมกับแอปพลิเคชันของคุณ
มีไพ่ 52 ใบในสำรับ (ไพ่ 4 ใบแต่ละใบด้านล่าง) มูลค่าของการ์ดมีดังนี้:
Symbol(Case Insensitive) Name Value
2 Two 2
3 Three 3
4 Four 4
5 Five 5
6 Six 6
7 Seven 7
8 Eight 8
9 Nine 9
T Ten 10
J Jack 10
Q Queen 10
K King 10
A or 1 Ace 1
ในแบล็คแจ็คเอซสามารถนับเป็น 1 หรือ 11 ในการแข่งขันของเรานับเป็น 1 เท่านั้น
เอาท์พุต
ความน่าจะเป็นในรูปแบบอัตราส่วนหรือเปอร์เซ็นต์ที่ไพ่ใบถัดไปที่เราจับจะทำให้เราสะดุด
คุณอาจส่งออกร้อยละเศษส่วนหรือเพียงเศษของเศษส่วน
ตัวอย่าง
ในตัวอย่างนี้ไพ่สองใบแรกอยู่ในมือของเราไพ่ใบที่สามคือไพ่ที่มองเห็นได้จากดีลเลอร์
Input -> Output
A 2 Q -> 0.00% or 0/49 or 0
A 2 3 -> 0.00% or 0/49 or 0
T T T -> 91.84% or 45/49 or 91.84
T J K -> 91.84% or 45/49 or 45
9 7 3 -> 61.22% or 30/49 ...
9 7 Q -> 59.18% or 29/49 ...
กฎระเบียบ
ไม่อนุญาตช่องโหว่มาตรฐาน
นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์สำหรับแต่ละภาษาจะชนะ!