De meeste kaartspelen vragen om aan het begin van het spel de stapel speelkaarten te schudden. Daarmee bedoelt men dat de kaarten in een willekeurige en onvoorspelbare volgorde moeten gebracht worden. Er bestaan echter heel wat verschillende technieken om dat schudden uit te voeren.
Het wassen van kaarten is een ietwat kinderachtige manier om kaarten te schudden. Daarbij worden de kaarten eerst met de beeldzijde naar beneden over de tafel uitgespreid. Vervolgens worden de kaarten met beide handen in cirkelvormige bewegingen door elkaar gehaald, en daarna terug op een stapel gelegd.
Bij overhands schudden — een methode die bijvoorbeeld gebruikt wordt bij poker — worden de kaarten op een stapeltje in één hand gehouden. Daarna gooit men steeds een aantal kaarten tegelijkertijd in de andere hand. Dit wordt een paar keer herhaald.
Bij bridge is het verboden om overhands te schudden, en is het verplicht om gebruik te maken van de zwaluwstaartmethode. Hierbij wordt de stapel kaarten in twee kleinere stapels gesplitst die ongeveer even hoog zijn. De twee kleinere stapels worden dan met de duimen opgetild, waarna men de kaarten willekeurig op elkaar laat vallen, zoals aangegeven in onderstaande afbeelding. Ook deze procedure wordt een paar keer herhaald.
Men spreekt van een perfecte zwaluwstaart als
de stapel die moet geschud worden een even aantal kaarten telt
deze stapel exact in twee helften gesplitst wordt
men om de beurt kaarten uit de twee helften op elkaar laat vallen
Er zijn twee soorten perfecte zwaluwstaarten: als de bovenste kaart verplaatst wordt naar de tweede kaart van boven dan noemt men dat naar binnen schudden, anders spreekt men van naar buiten schudden (waarbij de bovenste en onderste kaart op hun plaats blijven). In 1923 schreef T. Nelson Downs in een brief aan collega-goochelaar Edward G. "Tex" McGuire:
Een kaartspel van 52 kaarten acht keer na elkaar naar buiten schudden met een perfecte zwaluwstaart brengt de stapel speelkaarten terug in zijn oorspronkelijke volgorde.
Dit wordt geïllustreerd door onderstaand schema:
start | cyc #1 | cyc #2 | cyc #3 | cyc #4 | cyc #5 | cyc #6 | cyc #7 | cyc #8 | |
---|---|---|---|---|---|---|---|---|---|
kaart #01 | A♠ | A♠ | A♠ | A♠ | A♠ | A♠ | A♠ | A♠ | A♠ |
kaart #02 | 2♠ | A♣ | A♥ | 7♣ | 4♥ | 9♠ | 5♠ | 3♠ | 2♠ |
kaart #03 | 3♠ | 2♠ | A♣ | A♥ | 7♣ | 4♥ | 9♠ | 5♠ | 3♠ |
kaart #04 | 4♠ | 2♣ | A♦ | 7♦ | X♦ | Q♥ | K♠ | 7♠ | 4♠ |
kaart #05 | 5♠ | 3♠ | 2♠ | A♣ | A♥ | 7♣ | 4♥ | 9♠ | 5♠ |
kaart #06 | 6♠ | 3♣ | 2♥ | 8♠ | 4♣ | 2♦ | 8♥ | J♠ | 6♠ |
kaart #07 | 7♠ | 4♠ | 2♣ | A♦ | 7♦ | X♦ | Q♥ | K♠ | 7♠ |
kaart #08 | 8♠ | 4♣ | 2♦ | 8♥ | J♠ | 6♠ | 3♣ | 2♥ | 8♠ |
kaart #09 | 9♠ | 5♠ | 3♠ | 2♠ | A♣ | A♥ | 7♣ | 4♥ | 9♠ |
kaart #10 | X♠ | 5♣ | 3♥ | 8♣ | 4♦ | 9♥ | J♣ | 6♥ | X♠ |
kaart #11 | J♠ | 6♠ | 3♣ | 2♥ | 8♠ | 4♣ | 2♦ | 8♥ | J♠ |
kaart #12 | Q♠ | 6♣ | 3♦ | 8♦ | J♥ | Q♣ | 6♦ | X♥ | Q♠ |
kaart #13 | K♠ | 7♠ | 4♠ | 2♣ | A♦ | 7♦ | X♦ | Q♥ | K♠ |
kaart #14 | A♥ | 7♣ | 4♥ | 9♠ | 5♠ | 3♠ | 2♠ | A♣ | A♥ |
kaart #15 | 2♥ | 8♠ | 4♣ | 2♦ | 8♥ | J♠ | 6♠ | 3♣ | 2♥ |
kaart #16 | 3♥ | 8♣ | 4♦ | 9♥ | J♣ | 6♥ | X♠ | 5♣ | 3♥ |
kaart #17 | 4♥ | 9♠ | 5♠ | 3♠ | 2♠ | A♣ | A♥ | 7♣ | 4♥ |
kaart #18 | 5♥ | 9♣ | 5♥ | 9♣ | 5♥ | 9♣ | 5♥ | 9♣ | 5♥ |
kaart #19 | 6♥ | X♠ | 5♣ | 3♥ | 8♣ | 4♦ | 9♥ | J♣ | 6♥ |
kaart #20 | 7♥ | X♣ | 5♦ | 9♦ | J♦ | Q♦ | K♥ | K♣ | 7♥ |
kaart #21 | 8♥ | J♠ | 6♠ | 3♣ | 2♥ | 8♠ | 4♣ | 2♦ | 8♥ |
kaart #22 | 9♥ | J♣ | 6♥ | X♠ | 5♣ | 3♥ | 8♣ | 4♦ | 9♥ |
kaart #23 | X♥ | Q♠ | 6♣ | 3♦ | 8♦ | J♥ | Q♣ | 6♦ | X♥ |
kaart #24 | J♥ | Q♣ | 6♦ | X♥ | Q♠ | 6♣ | 3♦ | 8♦ | J♥ |
kaart #25 | Q♥ | K♠ | 7♠ | 4♠ | 2♣ | A♦ | 7♦ | X♦ | Q♥ |
kaart #26 | K♥ | K♣ | 7♥ | X♣ | 5♦ | 9♦ | J♦ | Q♦ | K♥ |
kaart #27 | A♣ | A♥ | 7♣ | 4♥ | 9♠ | 5♠ | 3♠ | 2♠ | A♣ |
kaart #28 | 2♣ | A♦ | 7♦ | X♦ | Q♥ | K♠ | 7♠ | 4♠ | 2♣ |
kaart #29 | 3♣ | 2♥ | 8♠ | 4♣ | 2♦ | 8♥ | J♠ | 6♠ | 3♣ |
kaart #30 | 4♣ | 2♦ | 8♥ | J♠ | 6♠ | 3♣ | 2♥ | 8♠ | 4♣ |
kaart #31 | 5♣ | 3♥ | 8♣ | 4♦ | 9♥ | J♣ | 6♥ | X♠ | 5♣ |
kaart #32 | 6♣ | 3♦ | 8♦ | J♥ | Q♣ | 6♦ | X♥ | Q♠ | 6♣ |
kaart #33 | 7♣ | 4♥ | 9♠ | 5♠ | 3♠ | 2♠ | A♣ | A♥ | 7♣ |
kaart #34 | 8♣ | 4♦ | 9♥ | J♣ | 6♥ | X♠ | 5♣ | 3♥ | 8♣ |
kaart #35 | 9♣ | 5♥ | 9♣ | 5♥ | 9♣ | 5♥ | 9♣ | 5♥ | 9♣ |
kaart #36 | X♣ | 5♦ | 9♦ | J♦ | Q♦ | K♥ | K♣ | 7♥ | X♣ |
kaart #37 | J♣ | 6♥ | X♠ | 5♣ | 3♥ | 8♣ | 4♦ | 9♥ | J♣ |
kaart #38 | Q♣ | 6♦ | X♥ | Q♠ | 6♣ | 3♦ | 8♦ | J♥ | Q♣ |
kaart #39 | K♣ | 7♥ | X♣ | 5♦ | 9♦ | J♦ | Q♦ | K♥ | K♣ |
kaart #40 | A♦ | 7♦ | X♦ | Q♥ | K♠ | 7♠ | 4♠ | 2♣ | A♦ |
kaart #41 | 2♦ | 8♥ | J♠ | 6♠ | 3♣ | 2♥ | 8♠ | 4♣ | 2♦ |
kaart #42 | 3♦ | 8♦ | J♥ | Q♣ | 6♦ | X♥ | Q♠ | 6♣ | 3♦ |
kaart #43 | 4♦ | 9♥ | J♣ | 6♥ | X♠ | 5♣ | 3♥ | 8♣ | 4♦ |
kaart #44 | 5♦ | 9♦ | J♦ | Q♦ | K♥ | K♣ | 7♥ | X♣ | 5♦ |
kaart #45 | 6♦ | X♥ | Q♠ | 6♣ | 3♦ | 8♦ | J♥ | Q♣ | 6♦ |
kaart #46 | 7♦ | X♦ | Q♥ | K♠ | 7♠ | 4♠ | 2♣ | A♦ | 7♦ |
kaart #47 | 8♦ | J♥ | Q♣ | 6♦ | X♥ | Q♠ | 6♣ | 3♦ | 8♦ |
kaart #48 | 9♦ | J♦ | Q♦ | K♥ | K♣ | 7♥ | X♣ | 5♦ | 9♦ |
kaart #49 | X♦ | Q♥ | K♠ | 7♠ | 4♠ | 2♣ | A♦ | 7♦ | X♦ |
kaart #50 | J♦ | Q♦ | K♥ | K♣ | 7♥ | X♣ | 5♦ | 9♦ | J♦ |
kaart #51 | Q♦ | K♥ | K♣ | 7♥ | X♣ | 5♦ | 9♦ | J♦ | Q♦ |
kaart #52 | K♦ | K♦ | K♦ | K♦ | K♦ | K♦ | K♦ | K♦ | K♦ |
Schrijf een functie zwaluwstaart waaraan een reeks (list of tuple) met een even aantal elementen moet doorgegeven worden. De functie moet een nieuwe lijst (list) teruggeven waarin de elementen van de gegeven reeks met een perfecte zwaluwstaart naar buiten geschud werden (eerste en laatste kaart blijven na schudden op hun oorspronkelijke positie). Als aan de functie een reeks wordt doorgegeven met een oneven aantal elementen, dan moet de functie een AssertionError opwerpen met de boodschap aantal kaarten moet even zijn.
Schrijf een functie schudden waaraan een reeks (list of tuple) met een even aantal elementen moet doorgegeven worden. De functie heeft ook nog een optionele parameter herhalingen waaraan een getal $$n \in \mathbb{N}$$ (int; standaardwaarde: $$n=1$$) kan doorgegeven worden. De functie moet een nieuwe lijst (list) teruggegeven, die de elementen van de gegeven reeks bevat nadat ze $$n$$ keer met een perfecte zwaluwstaart naar buiten geschud werden. Als aan de functie een reeks wordt doorgegeven met een oneven aantal elementen, dan moet de functie een AssertionError opwerpen met de boodschap aantal kaarten moet even zijn.
Schrijf een functie cyclus waaraan een even getal $$n \in \mathbb{N}_0$$ (int) moet doorgegeven worden. De functie moet een getal $$c \in \mathbb{N}_0$$ (int) teruggeven, dat aangeeft hoeveel keer men een stapel van $$n$$ verschillende speelkaarten minimaal naar buiten moet schudden met een perfecte zwaluwstaart om de stapel terug in zijn oorspronkelijke volgorde te brengen. De functie moet een AssertionError opwerpen met de boodschap aantal kaarten moet even zijn, als er een oneven getal aan de functie werd doorgegeven.
>>> zwaluwstaart(['2D', 'KC', 'JC', '3S', 'QD', 'KH'])
['2D', '3S', 'KC', 'QD', 'JC', 'KH']
>>> zwaluwstaart(('2D', '7C', 'AC', 'KH', '9C', '6S', '3S', '4H'))
['2D', '9C', '7C', '6S', 'AC', '3S', 'KH', '4H']
>>> zwaluwstaart(['JS', 'XH', 'AC', '5H', '6C', '9D', 'AS'])
Traceback (most recent call last):
AssertionError: aantal kaarten moet even zijn
>>> schudden(['2D', 'KC', 'JC', '3S', 'QD', 'KH'])
['2D', '3S', 'KC', 'QD', 'JC', 'KH']
>>> schudden(('2D', '7C', 'AC', 'KH', '9C', '6S', '3S', '4H'), herhalingen=2)
['2D', 'AC', '9C', '3S', '7C', 'KH', '6S', '4H']
>>> schudden(['JS', 'XH', 'AC', '5H', '6C', '9D', 'AS'], 42)
Traceback (most recent call last):
AssertionError: aantal kaarten moet even zijn
>>> cyclus(2)
1
>>> cyclus(8)
3
>>> cyclus(52)
8
>>> cyclus(137)
Traceback (most recent call last):
AssertionError: aantal kaarten moet even zijn
Dit is hoe het eruit ziet in handen van een ervaren croupier.