Перший фокус із магічною карткою, який я коли-небудь дізнався у дитинстві, був такий:
- Майте 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]
Перемішання
Потім після перемішування:
[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]
Це дійсний вихід із заданим порожнім входом.
Вхід колоди
Однак, навпаки, коли наша програма отримує вищевказаний вихід як вхід, вона повинна виводити 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 картою, оберненою як вхідна, повинна призвести до повернення карти.
- Будь-які інші входи можуть призвести до вибухових лам, що їздять на дорогах через футуристичну трубку.
- Або що-небудь інше, з цього питання.
- Як обрана карта, так і порядок перемішування повинні бути однаково випадковими.
- IE всі картки мають однакові шанси бути обраними для обернення.
- IE всі комбінації карт мають однакові шанси на появу.
- Ви можете використовувати
SHCD
абоshcd
для костюмів, але будьте послідовні:- Якщо ви вибираєте великі костюми (
SHCD
), ви також повинні використовуватиTJQKA
. - Якщо ви вибираєте малі костюми (
shcd
), ви також повинні використовуватиtjqka
.
- Якщо ви вибираєте великі костюми (
- Це код-гольф , переможець - найнижчим байтом.