Il trucco magico a 5 carte coinvolge un mago il cui assistente dà loro 4 carte mostrate e una nascosta, in questo ordine, e il mago deve indovinare quella nascosta.
ATTENZIONE: soluzione di seguito! Lascia ora o viziati con esso.
La soluzione
Il trucco qui è che le cinque carte sono date in un ordine specifico !
sono le 5 carte nell'ordine indicato.
è il numero della carta di in (ordine numerico).
, dove è un numero di carta è un numero intero, è uguale al numero di carta passi a destra di in , se necessario all'inizio, avvolgendosi all'inizio.
è il seme di in (ordine del seme).
, dove è un numero di carta è un seme, indica la carta con il numero di carta e seme .
, dove e sono le carte, è vero se 's abito è a sinistra di ' s tuta in , o le loro tute sono uguali e 's numero di carta è a sinistra di ' s numero di carta in .
, dove e sono le carte, è vero se è falsa.
, dove , e sono carte, è l'indice di permutazione di questo loro ordinamento, specificato dalla tabella seguente:
La soluzione al trucco di 5 carte è il problema:
La sfida
Fin qui tutto bene. Tuttavia, fare il calcolo sopra specificato è già richiesto qui . Invece, la tua sfida è, date le 5 carte in nessun ordine specifico, ordinarle correttamente. Ciò significa che le prime quattro carte nell'output rappresenteranno la quinta. In altre parole, sii l'assistente. Requisiti:
- .
- (cioè deve essere possibile).
Esempio
Consideriamo il set 7H,2D,6D,5C,6C
. Innanzitutto prendiamo le 25 coppie:
7H,7H 7H,2D 7H,6D 7H,5C 7H,6C
2D,7H 2D,2D 2D,6D 2D,5C 2D,6C
6D,7H 6D,2D 6D,6D 6D,5C 6D,6C
5C,7H 5C,2D 5C,6D 5C,5C 5C,6C
6C,7H 6C,2D 6C,6D 6C,5C 6C,6C
Quindi, rimuoviamo ovviamente le 5 coppie che contengono la stessa carta due volte, non esistono in un singolo mazzo:
7H,2D 7H,6D 7H,5C 7H,6C
2D,7H 2D,6D 2D,5C 2D,6C
6D,7H 6D,2D 6D,5C 6D,6C
5C,7H 5C,2D 5C,6D 5C,6C
6C,7H 6C,2D 6C,6D 6C,5C
Successivamente, poiché i semi devono essere gli stessi, semi diversi in una coppia sono un no-no:
2D, 6D 6D, 2D 5C, 6C 6C, 5C
Infine, controlliamo se è possibile passare dalla prima carta alla seconda aggiungendo al massimo 6, rimuovendo la metà delle coppie rimanenti:
2D, 6D 5C, 6C
Ora abbiamo le coppie valide: 2D,6D
e 5C,6C
. La prima carta di ogni coppia è la carta 1, mentre l'ultima è la carta 5.
Andremo con 5C,6C
qui per facilità. L'intero set è 7H,2D,6D,5C,6C
, quindi, rimuovere le 2 carte nella coppia che abbiamo scelto, abbiamo 7H,2D,6D
. Queste carte rappresenteranno 6 - 5 = 1
, quindi dobbiamo ordinarle come "min, mid, max". 7H > 2D < 6D < 7H
o semplicemente 2D < 6D < 7H
, quindi ora abbiamo 2D,6D,7H
.
L'ultimo passo è mettere tutto insieme, quindi il nostro risultato sarà 5C,2D,6D,7H,6C
.
chiarimenti
- È possibile utilizzare
10
invece diT
. - È possibile utilizzare uno dei
♠♥♦♣
,♤♡♢♧
o♠♡♢♣
al posto diCDHS
, rispettivamente. - Questo è code-golf , vince il codice più corto.
Casi test
È possibile produrre una o più delle soluzioni valide incluse per ciascun caso di test.
8S,TD,5C,QS,TS -> 8S,5C,QS,TD,TS
... 8S,TD,TS,5C,QS
... TS,5C,8S,TD,QS
JD,KH,4S,9D,8S -> 9D,KH,8S,4S,JD
... 4S,JD,KH,9D,8S
4H,4D,TH,KH,2C -> 4H,KH,4D,2C,TH
... TH,4D,2C,4H,KH
... KH,4D,TH,2C,4H
3S,KS,8S,KH,9H -> 9H,8S,KS,3S,KH
... 3S,KS,9H,KH,8S
... 8S,3S,9H,KH,KS
... KS,KH,9H,8S,3S
KH,TS,3C,7H,JD -> 7H,TS,JD,3C,KH
4C,KC,TD,JD,QS -> KC,JD,QS,TD,4C
... TD,4C,KC,QS,JD
AC,5H,8D,6D,8S -> 6D,AC,8S,5H,8D
AS,TC,3S,2H,9C -> 9C,2H,AS,3S,TC
... AS,9C,2H,TC,3S
4C,JS,AS,8H,JC -> JC,JS,AS,8H,4C
... JS,JC,4C,8H,AS
4H,QS,TH,QC,AC -> QC,4H,QS,TH,AC
... 4H,QS,QC,AC,TH