We designed special dice using math, but there’s a catch

How would you order the players randomly? Tell us in the comments. :) Some proposals that already appeared in the comments section: - Put cards with player names in a sack, shuffle, then take them out one by one to get the order. - Simulate the above process using dice (see the comments by Jordan Weitz and samuraiwarm for how to do it). - Just reroll the dice if there are ties. More precisely, the tied guys go to the next round where they decide the order between themselves (or some of them need to go to the third round etc.). - One die with n! sides, write the final permutations on it. The first two solutions are also similar to our solution with cards and to a so-called Fisher-Yates algorithm for sampling a random permutation. If you consider the third solution with coins instead of dice, what it is doing is that each player is basically sampling a uniformly random number from [0,1], bit by bit. Then, they are ordered by the size of sampled numbers. This corresponds to a simple and popular algorithm to create a random permutation: just sample n random reals from [0,1] and order them by size; the probability of ties is negligible. #SoME2 00:00 Intro 06:53 General Construction 15:26 Final Thoughts Eric's webpage: Also: The code for the animations and for finding fair dice: To make this video, we used manim, a Python library: The color palette we use: A few more facts and (open) problems if you are interested: -- You can generalize the lower bound on the number of sides of fair dice for general n; concretely, you can use the prime number theorem (or bounds on the so-called primorial) to show that n same-sized fair dice have to have 2^{\Omega(n)} sides each. -- On the other hand, our construction gives dice with (n!)^{n-1} = 2^{O(n^2 \log n)} sides. It would be interesting to see these two bounds getting closer, if you have progress on that, let us know! -- The lower bound on the number of sides can be generalized to the case when the dice are allowed to have different numbers of sides, then it tells you that for any n fair dice, at least 99% of them have to have 2^{\Omega(n)} sides. But we don't know whether all dice have to have exponentially many sides. -- Suppose I give you a string of length n over alphabet with k letters and ask you whether it is fair. The naive way to check it has time complexity O(n^k). Can you do it in time O(f(k) * n) for some function f?