## Consider an $n$-player game played in consecutive pairs: Round $1$ takes place between players $1$ and $2$, round $2$ takes place between players $2$ and $3$, and so on and so forth, all the way up to round $n$, which takes place between players $n$ and $1$. Then round $n+1$ takes place between players $1$ and $2$ as the entire cycle starts again.

In other words, during round $r$, player $((r-1) \bmod n) + 1$ faces off against player $(r \bmod n) + 1$.

During each round, a fair coin is tossed to decide which of the two players wins that round. If any given player wins both rounds $r$ and $r+1$, then that player wins the entire game.

Let $P_n(k)$ be the probability that player $k$ wins in an $n$-player game, in the form of a reduced fraction. For example, $P_3(1) = 12/49$ and $P_6(2) = 368/1323$.

Let $M_n(k)$ be the product of the reduced numerator and denominator of $P_n(k)$. For example, $M_3(1) = 588$ and $M_6(2) = 486864$.

Find the last $8$ digits of $M_{10^8+7}(10^4+7)$.

### To solve this problem, we’ll first define a function that calculates the probability $P_n(k)$ for a given $n$ and $k$. We’ll then use this function to compute $M_{10^8+7}(10^4+7)$.

Let’s start by implementing a function to calculate $P_n(k)$.

“` python

def calculate_probability(n, k):

if n == 1:

return 1

num_wins = 0

for i in range(n):

if i == k-1 or (i+1)%n == k-1:

num_wins += 1

return num_wins / n

n = 3

k = 1

print(calculate_probability(n, k))

“`

This function takes two parameters: `n` and `k`, representing the number of players and the player number we’re interested in, respectively. In the function body, we first handle the base case where `n` is equal to 1, in which case the probability of winning is always 1.

For larger values of `n`, we initialize a variable `num_wins` to keep track of the number of wins player `k` will have. We iterate over all players from 0 to `n-1` using a for loop. If the current player (`i`) is equal to `k-1` (since player numbering is 1-based) or if the next player (`(i+1)%n`) is equal to `k-1`, then player `k` wins a round, and we increment `num_wins`.

Finally, we return the probability by dividing `num_wins` by `n`.

Now that we have the function to calculate the probability, we can proceed to compute $M_{10^8+7}(10^4+7)$.

“` python

result_mod = 10**8 + 7

n = result_mod

k = 10**4 + 7

M_n_k = calculate_probability(n, k) * result_mod # Multiply by result_mod to convert to numerator/denominator form

print(M_n_k % 100000000) # Print the last 8 digits

“`

In this code, we first calculate the modulus value `result_mod`, which is $10^8 + 7$. We then set `n` and `k` to the desired values ($10^8+7$ and $10^4+7$, respectively).

Next, we calculate `M_n_k` by multiplying the probability `calculate_probability(n, k)` by `result_mod`. This gives us the numerator/denominator product.

Finally, we print the last 8 digits of `M_n_k` by calculating `M_n_k % 100000000`.

That’s it! Running this code will give you the last 8 digits of $M_{10^8+7}(10^4+7)$.

##### More Answers:

Product of Head CountsSubstring Sums of Prime Concatenations

Convex Path in Square