Wkład
Żaden
Wydajność
52 karty. Bez duplikatów. Karty są reprezentowane jako ich znaki Unicode, np. 🂹.
Punkty kodowe Unicode mają następujący format:
- Pierwsze trzy cyfry to
1F0
. - Następna cyfra jest
A
,B
,C
, lubD
na pik, kier, karo i klubów odpowiednio. - Następna cyfra jest
1
przezC
iE
dla różnych liczb / figury.1
jest asem,2
-A
to numer karty, aB
,D
iE
to walet, dama, król i odpowiednio. (C
to rycerz, którego nie ma w większości pokładów.)
Przykładowe dane wyjściowe:
🂶🃁🃛🃎🂧🂵🃗🂦🂽🂹🂣🃊🃚🂲🂡🂥🂷🃄🃃🃞🂺🂭🃑🃙🂪🃖🂳🃘🃒🂻🃆🂮🃍🂱🂴🃋🂸🃈🃅🃂🂨🃓🃉🂾🃇🂩🂢🂫🃔🃕 🂤🃝
Zasady:
- To jest golf golfowy . Najkrótsza odpowiedź wygrywa.
- Zabronione są luki .
- Twoja talia musi być w rzeczywistości losowa. W przypadku uruchomienia 20 razy należy wygenerować 20 losowych (i najprawdopodobniej unikatowych) wyników.
Uwaga
Jeśli widzisz tylko pola, zainstaluj czcionki DejaVu .
Odpowiedzi:
Galaretka ,
25 2321 bajtówNiladyczny link zwracający listę znaków lub pełny program, który drukuje potasowaną talię.
Wypróbuj online!
W jaki sposób?
źródło
JavaScript (ES6),
107106108 bajtówPokaż fragment kodu
-1 bajt dzięki @nderscore
JavaScript (ES6),
120119121 bajtówPoprzednia wersja.
źródło
[...'ABCD']
wcześniej nie widziałem . Fajnie :)"ABCD".map(...)
. Jestem pewien, że istnieją rozsądne powody, dla których tak jest.Python 3 ,
10694 bajty-5 bajtów dzięki musicman523 (1. użyj
sample(...,52)
jako wbudowanego odpowiednikashuffle
[dzięki całkowicie ludzki]; 2. użyj~v&2
zamiastv%4<2
; plus dodatkowy 1 bajt w konsekwencji, ponieważ spacja może zostać usunięta)Wypróbuj online!
źródło
sample
. Wypróbuj online!v%4<2
na,~v&2
aby zapisać jeszcze jeden bajt.random
funkcja może w tym pomóc. Kolejny bajt na górze, jakor ~...
może byćor~...
.05AB1E ,
2221 bajtówZaoszczędzono 1 bajt dzięki carusocomputing .
Wypróbuj online!
Wyjaśnienie
źródło
…1F0A4£14L13KhJâ«Hç.r
za 21 bajtów (edytowane, ponieważ zapomniałem usunąć rycerzy). Pomaga jednak zawiązać galaretkę.Bash + coreutils, 56 bajtów
Używamy
printf
do zapisywania każdej karty w osobnej linii, tasowania linii, a następnie łączenia wszystkich linii poprzez usunięcie znaków nowej linii.Zauważ, że chociaż
printf
polecenie coreutils wymaga dokładnie 8 cyfr szesnastkowych po\U
, wbudowane w Bashprintf
pozwala nam pominąć wiodące zera.źródło
echo 16iF09F8{2A,2B,38,39}{{1..9},A,B,D,E}0AP|dc|shuf|tr -d \\n
, ale twój jest lepszy. Nie wiedziałam o tym%b
.Python 3 , 112 bajtów
Wypróbuj online!
źródło
del
Oświadczenie nie załamać kolejno od lewej do prawej. Pierwszym elementema[::16]
jest U + 1F0A0 ODTWARZANIE KARTY, które należy usunąć. Musimy również usuwać karty Rycerz i Joker które utknęły pomiędzy normalnym 52. Zobacz en.wikipedia.org/wiki/... .Python 3 , 107 bajtów
Zaoszczędź 6 bajtów dzięki @totallyhuman i 3 dzięki @ CCB60!
Wypróbuj online!
źródło
,sep=''
naprawia spacje, oczywiście - ale sprawia, że 112 bajtówrandom.sample
! Pozwolę OP decydować o spacjach. Mogę dodać,,sep=''
aby się ich pozbyć i nadal oszczędzać 6 bajtów.PHP > = 7, 102 bajtów
Nie Online Interpreter dostępne dla IntlChar :: chr metoda
PHP , 112 bajtów
Wypróbuj online!
PHP , 116 bajtów
Wypróbuj online!
PHP, 121 bajtów
Wypróbuj online!
źródło
APL (Dyalog) ,
4038 bajtówMetoda Jonathana Allana
(
…)
W poniższej tablicy⍳62
pierwsze 62 liczby całkowite127136+
dodaj do tego 127136(
…)/
Odfiltruj to za pomocą logiki⍳62
pierwszych 62 liczb całkowitych16|
moduł 16180∨
GCD 180 i tym11>
czy 11 jest większe niż te[
…]
Wybierz następujące elementy?⍨52
przetasuj pierwsze 52 liczby całkowite (wybierz 52 losowe liczby całkowite z torby pierwszych 52 liczb całkowitych)⎕UCS
przekształcić do odpowiednich symboli w U nicode C haracter S iWersja 16.0 (obecnie w wersji beta) (33 znaki)
(
…)
W poniższej tablicy⍳62
pierwszych 62 liczb całkowitych16|
moduł 16180∨
GCD 180 i tym11>
czy 11 jest większe niż te⍸
indeksy gdzie Prawda127136+
dodaj do tego 127136[
…]
Wybierz następujące elementy?⍨52
przetasuj pierwsze 52 liczby całkowite (wybierz 52 losowe liczby całkowite z torby pierwszych 52 liczb całkowitych)⎕UCS
przekształcić do odpowiednich symboli w U nicode C haracter S iStare rozwiązanie
(
…)
W poniższej tablicy⍳14
pierwsze 14 liczb całkowitych12~⍨
z wyjątkiem 12(
…)∘.,
Kartezjańsko połączone⍳4
pierwsze 4 liczby całkowite9+
dodano do 9,
ravel (spłaszcz) to16⊥¨
ocenić każdy w bazie 16126976+
dodaj do tego 126976[
…]
Wybierz następujące elementy?⍨52
przetasuj pierwsze 52 liczby całkowite (wybierz 52 losowe liczby całkowite z torby pierwszych 52 liczb całkowitych)⎕UCS
przekształcić do odpowiednich symboli w U nicode C haracter S iźródło
Węgiel drzewny , 50 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Tworzy ciąg wszystkich 64 znaków w bloku, ale odfiltrowuje nieprawidłowe karty, ponieważ są one losowo wybierane. (Mówiąc o tym, losowy wybór bez zamiany z ciągu to tylko 11 bajtów, w porównaniu do 17 dla tablicy.)
Edycja: Odejmowanie od tablicy i inne ulepszenia węgla drzewnego zmniejszyły rozmiar do 41 bajtów: Wypróbuj online!
źródło
Alice , 34 bajty
Wypróbuj online!
Wyjaśnienie
źródło
> <> ,
495049 bajtówWypróbuj online!
(+1 bajt, aby poprawić losowość)
Interpretuję „losowy” w ten sposób, że „każdy możliwy wynik ma niezerowe prawdopodobieństwo”. To nie jest jednolity rozkład.
Kod składa się z dwóch etapów. Najpierw ryba kładzie wszystkie karty na stosie, używając pierwszych dwóch linii. Zaczynając od asa pik, ryba powiela się i zwiększa, a następnie sprawdza, czy kod szesnastkowy poprzedniej karty kończy się na 0, C lub F, mnożąc razem x ( x -12) ( x -15), gdzie x to mod charcode 16 i sprawdzanie, czy to zero. Jeśli tak, to usuwa wykraczającą kartę ze stosu. Powtarza się, aż stos ma 52 karty, a następnie przechodzi do etapu 2:
Ten fragment kodu tasuje i drukuje stos.
x
Wyznacza kierunek ryba jest losowo:v
i wraca dox
niczego, nie robiąc nic. Lewy kierunek jest podobny.{
, obracając cały stos w lewo, a następnie wraca dox
.x
.Oczywiste jest, że można wyprodukować każdą możliwą kolejność kart: w dowolnym momencie etapu 2 każda karta, która nie została jeszcze wydrukowana, może zostać wydrukowana jako następna, jeśli ryba przepłynie wystarczająco dużo razy w prawo. Ta technika tasowania zwykle nie rozsuwa kart bardzo daleko od siebie, jeśli były już blisko siebie, ale z drugiej strony nie tasuje się też ręcznie .
źródło
R, 61 bajtów
Próbkuj losowo wektor reprezentacji liczb całkowitych wartości Unicode kart (które można uzyskać z
utf8ToInt()
Fucntion) i usuń niechciane karty rycerzy / jokerów.źródło
C # (
146141 bajtów)Demo online
Używa to bardzo złego stylu w tasowaniu
Guid.NewGuid()
, ale jest to gra w golfa. Następnie ręcznie buduje pary zastępcze.źródło
Perl 5, 75 bajtów
Zauważ, że używa to punktów kodowych dla królowych, jak podano w pytaniu (tj. Ostatniej cyfrze
C
). Dla rzeczywistych punktów kodowych (ostatnia cyfraD
), wymienić51,56
się47,52
.źródło
Java 8, 216 bajtów
Wyjaśnienie:
Wypróbuj tutaj.
UWAGA: Niesprawdzone, ponieważ mimo że zainstalowałem połączoną czcionkę, nadal widzę pola. Prawdopodobnie muszę ponownie uruchomić komputer lub coś w tym stylu…
źródło
Dyalog APL, 35 bajtów
na podstawie odpowiedzi Adáma
wykorzystuje
⎕io←0
źródło
Japt ,
51413922 bajtówZ pewną inspiracją z galaretki Jonathana .
Wypróbuj (lub wyświetl wynik ze zwiększonym
font-size
)Wyjaśnienie
źródło