# Math Reveals How Many Shuffles Randomizes A Deck

Math — and some clever simulations — have revealed how many shuffles are required to randomize a deck of 52 cards, but there’s a bit more to it than that. There are different shuffling methods, and dealing methods can matter, too. [Jason Fulman] and [Persi Diaconis] are behind the research that will be detailed in an upcoming book, The Mathematics of Shuffling Cards, but the main points are easy to cover.

A riffle shuffle (pictured above) requires seven shuffles to randomize a 52-card deck. Laying cards face-down on a table and mixing them by pushing them around (a technique researchers dubbed “smooshing”) requires 30 to 60 seconds to randomize the cards. An overhand shuffle — taking sections from a deck and moving them to new positions — is a staggeringly poor method of randomizing, requiring some 10,000-11,000 iterations.

The method of dealing cards can matter as well. Back-and-forth dealing (alternating directions while dealing, such as pattern A, B, C, C, B, A) yields improved randomness compared to the more common cyclic dealing (dealing to positions in a circular repeating pattern A, B, C, A, B, C). It’s interesting to see different dealing methods shown to have an effect on randomness.

This brings up a good point: there is not really any such a thing as “more” random. A deck of cards is either randomized, or it isn’t. If even two cards have remained in the same relative positions (next to one another, for example) after shuffling, then a deck has not yet been randomized. Similarly, if seven proper riffle shuffles are sufficient to randomize a 52-card deck, there is not really any point in doing eight or nine (or more) because there isn’t any such thing as “more” random.

You can watch these different methods demonstrated in the video embedded just under the page break. Now we know there’s no need for a complicated Rube Goldberg-style shuffling solution just to randomize a deck of cards (well, no mathematical reason for one, anyway.)

# A Mostly Fair Deal For All With A Raspberry Pi

To be a professional card dealer takes considerable skill, something that not everybody might even have the dexterity to acquire. Fortunately even for the most ham-fisted of dealers there’s a solution, in the form of the Dave-O-matic, [David Stern]’s automated card dealer using a Raspberry Pi 4 with a camera and pattern recognition.

It takes the form of a servo-controlled arm with a sucker on the end, which is able to pick up the cards and present them to the camera. They can then be recognized by value, and pre-determined hands can be dealt or alternatively a random hand. It seems that the predetermined hands aren’t an aid in poker cheating, but a part of the bridge player’s art. You can see it in action in the video below the break.

We like the project, but sadly at this point we must take [Dave] to task, because while tantalizing us with enough detail to get us interested he’s slammed the door in our faces by failing to show us the code. it would be nice to think that the clamor from disaffected Hackaday readers might spur him into throwing us a crumb or two.

It probably won’t surprise you to find that this isn’t the first Raspberry Pi to find itself dealing cards.

# Performing Magic With A Little High-Tech Help

Doing magic with cards involves a lot of precise dexterity to know which card is where. For plenty of tricks, this is often knowledge and control of a single card or a small number of cards. But knowing the exact position of every single card in the deck could certainly be helpful, so the Nettle Magic Project was created to allow magicians to easily identify the location of cards in the deck.

The system works through the use of computer vision to identify a series of marks on the short edge of a stack of cards. The marks can be printed in IR- or UV-sensitive ink to make them virtually invisible, but for demonstration these use regular black ink. Each card has landmarks printed on either side of a set of bit markers which identify the cards. A computer is able to quickly read the marks and identify each card in order while the deck is still stacked, aiding the magician in whichever trick they need to perform.

The software only runs on various Apple devices right now, including iPhones and iPads, but the software is readily available fore experimentation if you are a magician looking to try something like this out. Honestly, we don’t see too many builds focusing on magic, sleight-of-hand or otherwise, and we had to go back over a decade to find a couple of custom magical builds from a magician named [Mario].

Thanks to [Tim] for the tip!

# Let The Cards Fall Where They May, With A Robotic Rain Man

Finally,  a useful application for machine vision! Forget all that self-driving nonsense and facial recognition stuff – we’ve finally got an AI that can count cards at the blackjack table.

The system that [Edje Electronics] has built, dubbed “Rain Man 2.0” in homage to the classic title character created by [Dustin Hoffman] for the 1988 film, aims to tilt the odds at the blackjack table away from the house by counting cards. He explains one such strategy, a hi-low count, in the video below, which Rain Man 2.0 implements with the help of a webcam and YOLO for real-time object detection. Cards are detected in any orientation based on their suit and rank thanks to an extensive training set of card images, which [Edje] generated synthetically via some trickery with OpenCV. A script automated the process and yielded a rich training set of 50,000 images for YOLO. A Python program implements the trained model into a real-time card counting application.

Rain Man 2.0 is an improvement over [Edje]’s earlier Tensor Flow card counter, but it still has limitations. It can’t count into a six-deck shoe as the fictional [Rain Man] could, at least not yet. And even though cheater’s justice probably isn’t all cattle prods and hammers these days, the hardware needed for this hack is not likely to slip past casino security. So [Edje] has wisely limited its use to practicing his card counting skills. Eventually, he wants to turn Rain Man into a complete AI blackjack player, and explore its potential for other games and to help the visually impaired.

# A Raspberry Pi Rain Man In The Making

We see a lot of Raspberry Pis used to play games, but this is something entirely different from the latest RetroPie build. This Raspberry Pi is learning how to read playing cards, with the goal of becoming the ultimate card counting blackjack player.

If [Taxi-guy] hasn’t named his project Rain Man, we humbly suggest that he does so. Because a Pi that can count into a six-deck shoe would be quite a thing, even though it would never be allowed anywhere near a casino. Hurdle number one in counting cards is reading them, and [Taxi-guy] has done a solid job of leveraging the power of OpenCV on a Pi 3 for the task. His description in the video below is very detailed, but the approach is simple: find the cards in a PiCam image of the playing field using a combination of thresholding and contouring. Then, with the cards isolated, compare the rank and suit in the upper left corner of the rotated card image to prototype images to identify the card. The Pi provides enough horsepower to quickly identify an arbitrary number of non-overlapping cards; we assume [Taxi-guy] will have to address overlapping cards and decks that use different fonts at some point.

We’re keen to see this Pi playing blackjack someday. As he’s coding that up, he may want to look at algorithmic approaches to blackjack strategies, and the real odds of beating the house.

# Performance Oddities

[Mario the Magician] wrote in to let us know that he makes Hackaday a priority every morning with his coffee. Well, so do we. He also included a link to his homepage when submitting this revelation. The juicy details that are as much of a fix as the caffeine in the coffee are missing from his posts. But the hacks are solid.

Magicians are hackers. If you could go out and buy the props, the concept are unlikely to impress anyone. [Mario] demonstrates his Nickel Box and a Jedi Mind Trick he built. The Nickel Box is a mechanical contraption that somehow transports a coin from one part of a cigar box to a tiny little enclosure on top of it. The Jedi Mind Trick uses a microcontroller and an old Star Wars soundtrack cassette tape box to put on a light and sound show while it recovers your chosen card from a shuffled deck. Great demonstrations, but no word on what’s going on inside.

[Mario’s] also has a collection of… performance oddities. His talking television takes an audio input and displays a 1950’s-esque oscilloscope effect on an old TV. He’s attempting to stop his heart, or burn the house down, or both with a flyback transformer lightning box. And his drawing automaton, well, you’ll just have to see it.

We believe in electrons, not magic (even though some say there are no electrons). So we want to know how those magic props are built. Like any good magician, [Mario] probably won’t reveal his secrets. If you’ve got the goods this your chance. Write a post detailing your magical prop builds and send them our way. If it’s well done we’ll feature it here on Hackaday.