Project Euler Lab - Problem 470

#470 - Super Ramvok

● ResearchOfficial difficulty: 74%Two-player gamesTier C - reduced scale in browser; full scale in notebookNot viewed
↖ Euler Lab

Consider a single game of Ramvok:

Let \(t\) represent the maximum number of turns the game lasts. If \(t = 0\), then the game ends immediately. Otherwise, on each turn \(i\), the player rolls a die. After rolling, if \(i \lt t\) the player can either stop the game and receive a prize equal to the value of the current roll, or discard the roll and try again next turn. If \(i = t\), then the roll cannot be discarded and the prize must be accepted. Before the game begins, \(t\) is chosen by the player, who must then pay an up-front cost \(ct\) for some constant \(c\). For \(c = 0\), \(t\) can be chosen to be infinite (with an up-front cost of \(0\)). Let \(R(d, c)\) be the expected profit (i.e. net gain) that the player receives from a single game of optimally-played Ramvok, given a fair \(d\)-sided die and cost constant \(c\). For example, \(R(4, 0.2) = 2.65\). Assume that the player has sufficient funds for paying any/all up-front costs.

Now consider a game of Super Ramvok:

In Super Ramvok, the game of Ramvok is played repeatedly, but with a slight modification. After each game, the die is altered. The alteration process is as follows: The die is rolled once, and if the resulting face has its pips visible, then that face is altered to be blank instead. If the face is already blank, then it is changed back to its original value. After the alteration is made, another game of Ramvok can begin (and during such a game, at each turn, the die is rolled until a face with a value on it appears). The player knows which faces are blank and which are not at all times. The game of Super Ramvok ends once all faces of the die are blank.

Let \(S(d, c)\) be the expected profit that the player receives from an optimally-played game of Super Ramvok, given a fair \(d\)-sided die to start (with all sides visible), and cost constant \(c\). For example, \(S(6, 1) = 208.3\).

Let \(F(n) = \sum_{4 \le d \le n} \sum_{0 \le c \le n} S(d, c)\).

Calculate \(F(20)\), rounded to the nearest integer.

This problem is taken from Project Euler, Problem 470.
Problem text © Project Euler, licensed under CC BY-NC-SA 4.0. Original: projecteuler.net/problem=470. Published Saturday, 3rd May 2014, 07:00 pm. Solved by 276 members at time of mirroring.

Why this is useful

Probability Statistics. Expectation and state-based probability reasoning underpin pricing, risk, and statistical inference (Phases 7, 11, 13).

We classify relevance honestly - not every Euler problem is a trading application.

Learning mode

Pick how much scaffolding you want. Your choice is remembered per problem.

Scratchpad

Mathematical notes, formulas, pseudocode, hypotheses, complexity notes. Saved automatically with your progress.

Python workbench

Tier C - reduced scale in browser; full scale in notebook
Browser runs a reduced, clearly-labelled educational scale; the original scale is provided in a local notebook.

Real Python (Pyodide) in a sandboxed Web Worker - no network, no filesystem, no DOM access. Ctrl/Cmd+Enter runs. Escape leaves the editor. Stop terminates the worker.

Python runtime not loaded (it boots on first run - a one-time local load).

Check your answer

Answers are checked against a salted hash held in a separate file - not printed in this page. This prevents accidental spoilers; it is not cryptographic protection (see the build notes).

Progressive hints

Confidence

Low confidence schedules this problem for spaced review, even if you solved it.

Reference solution

Spoiler
The complete original explanation (interpretation, naive approach, insight, proof, complexity, Python implementation, tests, common mistakes, alternatives) is hidden and lazy-loaded. Reveal it only after a meaningful attempt - the struggle is where the learning happens.