Input Output:
Input : Una stringa uniformemente casuale, infinitamente lunga, di '0' e '1', presa dallo stdin. Si presume che la stringa sia veramente casuale, non pseudo-casuale. È uniforme in quanto ogni personaggio ha la stessa probabilità di essere "0" o "1".
! attento L'input è infinitamente lungo, quindi non puoi archiviarlo tutto in memoria usando una funzione come raw_input () in Python. Se non sbaglio, golfscript fallirà con l'input infinito, poiché spinge l'intero input nello stack prima della corsa.
Output : un mazzo standard mischiato in modo uniforme e casuale, senza jolly. È uniforme in quanto tutti gli ordini sono ugualmente probabili.
Ogni carta nell'output è il suo rango, A, 2-9, T, J, Q o K concatenati con il suo seme, c, d, h o s. Ad esempio, il 10 di picche èTs
Le carte del mazzo devono essere separate da spazi.
Non è possibile utilizzare librerie o funzioni casuali incorporate perché non sono veramente casuali, ma solo pseudo-casuali.
Esempio di input
Puoi usare il seguente script python per reindirizzare l'input nel tuo programma:
import sys, random
try:
while True:
sys.stdout.write(str(random.randint(0,1)))
except IOError:
pass
Se si salva lo script come rand.py, provare il programma con python rand.py | your_program
In python 3 funziona come previsto, ma in python 2.7 ricevo un messaggio di errore dopo l'output del mio programma, ma solo dopo aver fatto tutto, quindi ignora il messaggio di errore.
Esempio di output:
Ecco come dovrebbe essere stampato il mazzo se fosse mescolato in un ordine ordinato:
Ac 2c 3c 4c 5c 6c 7c 8c 9c Tc Jc Qc Kc Ad 2d 3d 4d 5d 6d 7d 8d 9d Td Jd Qd Kd Ah 2h 3h 4h 5h 6h 7h 8h 9h Th Jh Qh Kh As 2s 3s 4s 5s 6s 7s 8s 9s Ts Js Qs Ks
punteggio:
Questo è un codice golf. Il codice più corto vince.
Esempio di programma:
Ecco una soluzione Python 2.7, non giocata a golf.
import sys
def next():
return int(sys.stdin.read(1))==1
def roll(n):
if n==1:
return 0
if n%2==0:
r=roll(n/2)
if next():
r+=n/2
return r
else:
r=n
while(r==n):
r=roll(n+1)
return r
deck = [rank+suit for suit in 'cdhs' for rank in 'A23456789TJQK']
while len(deck)>0:
print deck.pop(roll(len(deck))),