The Chase II
n players sit around a circular table. Two dice are placed randomly with two distinct players. Each turn, both die-holders simultaneously roll a fair die: outcomes 1--2 pass the die left, 3--4 keep...
Problem Statement
This archive keeps the full statement, math, and original media on the page.
Consider the following variant of "The Chase" game. This game is played between \(n\) players sitting around a circular table using two dice. It consists of \(n-1\) rounds, and at the end of each round one player is eliminated and has to pay a certain amount of money into a pot. The last player remaining is the winner and receives the entire contents of the pot.
At the beginning of a round, each die is given to a randomly selected player. A round then consists of a number of turns.
During each turn, each of the two players with a die rolls it. If a player rolls a 1 or a 2, the die is passed to the neighbour on the left; if the player rolls a 5 or a 6, the die is passed to the neighbour on the right; otherwise, the player keeps the die for the next turn.
The round ends when one player has both dice at the beginning of a turn. At which point that player is immediately eliminated and has to pay \(s^2\) where \(s\) is the number of completed turns in this round. Note that if both dice happen to be handed to the same player at the beginning of a round, then no turns are completed, so the player is eliminated without having to pay any money into the pot.
Let \(G(n)\) be the expected amount that the winner will receive. For example \(G(5)\) is approximately 96.544, and \(G(50)\) is 2.82491788e6 in scientific notation rounded to 9 significant digits.
Find \(G(500)\), giving your answer in scientific notation rounded to 9 significant digits.
Problem 683: The Chase II
Mathematical Foundation
Theorem 1 (Gap Reduction). By circular symmetry, the state of a round with players is fully described by the gap between the two die positions. The gap evolves as
where each independently with probability each.
Proof. Player positions are labeled modulo . Die 1 at position moves to and die 2 to . The gap changes by . The initial positions are irrelevant; only the gap matters.
Lemma 1 (Distribution of ). The difference has distribution:
Proof. Direct convolution of two uniform distributions.
Theorem 2 (Circulant Eigenvalues). The transition matrix on the non-absorbing states is circulant. Its eigenvalues are
Proof. The transition probability from gap to gap depends only on , so is circulant. For a circulant matrix with first-row entries (where ), the eigenvalues are where . Substituting the -distribution:
Theorem 3 (Expected via Fundamental Matrix). Let be the fundamental matrix. Then:
- ,
- .
For a circulant , these reduce to spectral formulae:
Proof. Standard absorbing Markov chain theory: if is the absorption time, and . The spectral decomposition of the circulant diagonalizes via DFT: has eigenvalues , and has eigenvalues . The formula follows from the inverse DFT.
Theorem 4 (Expected Round Cost). In a round with players and dice placed uniformly at random among distinct pairs, the expected cost is
Since for , this simplifies to
Proof. The initial gap is uniform on . Averaging and using the geometric sum formula for roots of unity yields the result.
Corollary. The expected total pot is
Editorial
We enumerate the admissible parameter range, discard candidates that violate the derived bounds or arithmetic constraints, and update the final set or total whenever a candidate passes the acceptance test.
Pseudocode
total = 0
For m from 2 to n:
cost = 0
For k from 1 to m - 1:
lam = (3 + 4*cos(2*pi*k/m) + 2*cos(4*pi*k/m)) / 9
cost += (1 + lam) / (1 - lam)^2
cost = -cost / (m - 1)^2
total += cost
Return total
Complexity Analysis
- Time: .
- Space: (no matrices stored; eigenvalues computed on-the-fly).
Answer
Code
Each problem page includes the exact C++ and Python source files from the local archive.
#include <bits/stdc++.h>
using namespace std;
/*
* Problem 683: The Chase II
*
* 1. Implement the mathematical framework described above.
* 2. Optimize for the target input size.
* 3. Verify against known test values.
*/
int main() {
printf("Problem 683: The Chase II\n");
// Absorbing Markov chain on product state space (die1 position, die2 position)
int N = 100;
long long total = 0;
for (int n = 1; n <= N; n++) {
total += n; // Replace with problem-specific computation
}
printf("Test sum(1..%d) = %lld\n", N, total);
printf("Full implementation needed for target input.\n");
return 0;
}
"""
Problem 683: The Chase II
"""
print("Problem 683: The Chase II")
# Core computation
N = 100 # Small test case
values = list(range(1, N + 1)) # Placeholder for problem-specific computation
# The full solution implements: Absorbing Markov chain on product state space (die1 position, die2 position)
print(f"Computed {len(values)} values")
print(f"Sum = {sum(values)}")
plot_data = [values, values, values, values]