In 1927 Royal V. Heath marketed a magic effect called “The Di-Ciphering Trick” based on a math trick developed by Ed Balducci (1906-1988); a New York City magician and civil engineer by day. Royal Vale Heath (1883-1960) was a New York City broker, American Magician and puzzle enthusiast. Tricks with serial numbers, Magic Squares and dice were his specialty.
Heath performed and wrote actively and wrote a popular book on mathematical recreations named Mathemagic: Magic, Puzzles and Games with Numbers. Heath was a rich stockbroker who carried himself as a pompous fool. He performed tedious mathematical tricks that put his audience to sleep. Heath is one of the reasons Martin Gardner had a career writing about recreational math. See Magical Mathematics: The Mathematical Ideas that Animate Great Magic Tricks by Graham, Ron; Diaconis, Persi for a story about Gardner and Heath along with some great mathemagic.
The “Di-Ciphering” trick consists of 5 dice cubes bearing a different 3 digit number on each face – 30 numbers in all. A spectator would roll the dice and the magician would quickly announce the sum of all the numbers.
Let’s look at the dice used for the trick:
5 unique set of 6 sided dice which have the following numbers on each of the sides. None of the numbers are repeated on a dice or any other dice.
1: [483, 285, 780, 186, 384, 681]
2: [642, 147, 840, 741, 543, 345]
3: [558, 855, 657, 459, 954, 756]
4: [168, 663, 960, 366, 564, 267]
5: [971, 377, 179, 872, 773, 278]
An example roll of the dice is:
186 147 459 168 179
with a sum of 1139.
The method used to quickly calculate the sum of the 5 die of 3 digit numbers is:
Add the last digit of all of the numbers -> 6 + 7 + 9 + 8 +9 = 39
39 is the last 2 digits of the sum.
To find the first two digits of the sum take 50 – 39 = 11.
Thus the sum is 1139.
This will work with any roll of the dice.
Since there are 5 dice with 6 possible numbers we have
Why does this method work?
What is special about the numbers on the dice?
Let’s look at some of the 7,776 sums (a small sample) and look at the numbers on the dice as well to see if we can find any patterns.
|FIRST + LAST||Sum|
- Sum of middle digit of the numbers (one from each dice) always add to n0 – this needs to occur for the last two digits of sum of the numbers to be sum of last digits.
- Middle digit of:
D1 = 8, D2 = 4, D3 = 5, D4 = 6, D5 = 7
thus 8 + 4 + 5 + 6 + 7 = 30
- Therefore sum of last digits will be last two digits of the sum of numbers from each of the 5 dice.
- All combinations of sums of 5 dice need to have first 2 digits plus last 2 digits always add to 50.
- Sum of first and last digit for each dice:
D1 = 7, D2 = 8, D3 = 13, D4 = 9, D5 = 10
This sum is 47
- Sum of first digit plus 3 (since middle digits always add to 30) + sum of last digits for each combination of dice = 50.
- So we can determine sum of all the dice on the roll by adding last digits for the left 2 digits of the sum then subtract from 50 to get the leading two digits of the sum.
- Sum of digits of the total is always 14
We know there can be 7,776 possible totals when we roll the dice.
How many are unique. Below is the output of a program which generated all of the possible totals of the 5 dice, sorted and then duplicates removed. From this we see there are 35 unique totals.
A different trick using these dice was given in the book Practical Mental Magic by Theodore Annemann.
Let someone shake and roll the 5 dice. You line them up in a row, and turning your back ask the person assisting to add up the figures and get the total. Then ask him how many figures are in the total. He replies that there are four, and you tell him to look at the first two and the last two. Now toss him a book (can be any book of your choosing including dictionary or phone book), and have him open it at the page represented by the higher of the two numbers. Then, taking the other number, he counts to that word on the page and remembers it. You take out a pocket notebook, jot something down on a page, tear it out, crumple it and hand it to another person. The word is now disclosed, and your written divination is found to be correct.
Preparation and Routine: The use of the dice make the test appear very fair. There is never a thought that in the moment of putting the dice in line, or in instructing the spectator what to do, you have learned the total by the short cut process possible with this trick. The opinion they have is that there can be hundreds of variations. If there is a question about the digits on the dice you can mention that they are used for some money game (without going into that part further) as an excuse for their being numbered with three digits to a side.
As further preparation for the trick we need to look at all of the unique somes in a slightly different manner. We are interested in the first two digits and last two digits of the sums as pairs with the highest of the pairs being first.
Below is the result of taking the unique sums, separating out the first 2 digits and last 2 digits, arrange sum as highest of pairs followed by the other set of digits. For example if the sum is 2426 since last 2 digits 26 are larger than the first two digits 24 we would rearrange and write the sum as 2624. Doing that for all of the 35 unique sums we end up with this list:
2525, 2624, 2723, 2822, 2921, 3020, 3119, 3218, 3317, 3416, 3515, 3614, 3713, 3812, 3911, 4010, 4109, 4208, 4307, 4406, 4505
On the inside cover of your notebook, you have the list of the 21 words—from the book you intend using—followed by the 21 possible totals. It’s an easy matter to steal a glance at the prepared list as you open your note book to jot down your written word.
For example for these 3 sums we look on the page the the nth word on the page and write in out our notebook before the performance:
- Can use your imagination to find other tricks using the unique properties of the dice.
- Are there other number which will also work?
Python program to find all of the sums, unique sums and pairs for book trick:
|__author__ = 'johnsommer'|
|# url for description of the dice and unique properties|
|d = list(());|
|# list of Heath's dice|
|d.append([483, 285, 780, 186, 384, 681]);|
|d.append([642, 147, 840, 741, 543, 345]);|
|d.append([558, 855, 657, 459, 954, 756]);|
|d.append([168, 663, 960, 366, 564, 267]);|
|d.append([971, 377, 179, 872, 773, 278]);|
|dice = list(());|
|totals = list();|
|totals_sorted = list();|
|# Find all possible totals of 5 dice when rolling them|
|for i1 in d:|
|for i2 in d:|
|for i3 in d:|
|for i4 in d:|
|for i5 in d:|
|dice.append ([i1,i2,i3,i4,i5, i1+i2+i3+i4+i5]);|
|# print(i1,i2,i3,i4,i5, i1+i2+i3+i4+i5);|
|totals_sorted = sorted(totals);|
|dice.sort(key=lambda e: e);|
|# get a list of unique sums|
|totals_set = set(totals_sorted);|
|# hilow list is to represent the list of unique sum using the 1st 2 digits and last 2 digits as pairs.|
|# Arrange the ser of pairs with the highest of the pairs first.|
|hilow = list();|
|for t1 in totals_set:|
|first2 = int(str(t1)[0:2]);|
|last2 = int(str(t1)[2:4]);|
|if (first2 > last2):|
|hl = first2*100 + last2;|
|hl = last2*100 + first2;|
|# Create a unique list|
|hilow = set(hilow);|
|# print( len(dice), len(totals), dice, totals,totals_sorted, len(totals_set), len(hilow));|
|print('5 unique set of dice');|
|for i in d:|
|print('Total number of possible dice rolls', len(dice));|
|print('Number of unique sums = ', len(totals_set));|
|print('List of unique sums = ', sorted(totals_set));|
|print('Number of unique sums using first 2 digits and last 2 – highest of pair first', len(hilow));|
|print('Unique sums using first 2 digits and last 2 – highest of pair first', sorted(hilow));|