Reported October 2026
Jane Streetmath

Exact-Sixty Dice Game Value

Reported by candidates from Jane Street's online assessment. Pattern, common pitfall, and the honest play if you blank under the timer.

Get StealthCoderRuns invisibly during the live Jane Street OA. Under 2s to a working solution.
Founder's read

Jane Street's October 2026 OA has a dice problem that looks like probability homework and isn't. Read it twice and it collapses into one question: which die has the smallest side count that is still at least 60? That's the whole game. The payout is 100, the cost is 1, and only a die with s >= 60 can ever hit exactly 60. You're staring at a simulation tag and a fraction format, but there's nothing to simulate. If you blank on the fraction reduction mid-assessment, StealthCoder runs invisibly as a safety net and hands you the clean version.

The problem

Choose one available fair die and roll it once. A die with s sides has equally likely integer faces from 1 through s. The roll costs 1, and rolling exactly 60 pays 100.
Return the side count with the greatest exact expected net value as side|numerator/denominator, where the reduced fraction is also the fair midpoint for the round. Ties choose the smaller side count. Dice with fewer than 60 sides can never win the payout and therefore have net value -1/1.

Function
bestExactSixtyDie(sideCounts: int[]) → String

Examples
Example 1
sideCounts = [10,20,30,40,50,60,70,80,90,100]
return = "60|2/3"
The 60-sided die has net expectation 100/60 - 1 = 2/3, larger than every other available die.
Example 2
sideCounts = [6,20,50]
return = "6|-1/1"
No die can roll 60, so every option has net value -1 and the smallest side count wins the tie.

Constraints
1 <= sideCounts.length <= 10^5.
1 <= sideCounts[i] <= 10^9.
Side counts may repeat.

Reported by candidates. Source: FastPrep

Pattern and pitfall

Expected net value for a die with s >= 60 is 100/s - 1, which is (100 - s)/s. It strictly decreases as s grows, so the best die is the smallest s that is at least 60. For s < 60 the value is -1/1, and ties go to the smaller side count, so if no die reaches 60, return the minimum side count with -1/1. One pass over the array does it. Track the minimum overall and the minimum among values >= 60. Then reduce the fraction using gcd of |numerator| and denominator. The pitfall is sign handling. For s > 100 the numerator is negative, so keep the sign on the numerator and the denominator positive. At s = 100 the value is 0, written 0/1 after reduction. Don't use floats. Integer math only, since s goes up to 10^9. Duplicates don't matter. StealthCoder is your hedge in the live OA if the gcd and sign formatting trip you up under pressure.

If this hits your live OA and you blank, StealthCoder solves it in seconds, invisible to the proctor.

If this hits your live OA

You can drill Exact-Sixty Dice Game Value cold, or you can hedge it. StealthCoder runs invisibly during screen share and surfaces a working solution in under 2 seconds. The proctor sees the IDE. They don't see what's behind it. Built by an Amazon engineer who would have shipped this the night before his JPMorgan OA if he'd had it.

Get StealthCoder

Related leaked OAs

⏵ The honest play

You've seen the question. Make sure you actually pass Jane Street's OA.

Jane Street reuses patterns across OAs. Built by an Amazon engineer who would have shipped this the night before his JPMorgan OA if he'd had it. Works on HackerRank, CodeSignal, CoderPad, and Karat.

Exact-Sixty Dice Game Value FAQ

What's the actual trick in the Jane Street exact-sixty dice problem?+

Expected value is 100/s - 1 for s >= 60, which falls as s rises. So you want the smallest side count that's at least 60. Everything below 60 is a flat -1. No simulation, no sorting needed, just a single scan for two minimums.

How do I format the answer fraction correctly?+

Compute numerator 100 - s and denominator s, then divide both by their gcd. Keep the denominator positive and put any negative sign on the numerator. For dice under 60, output -1/1 directly. A 100-sided die gives 0/1 after reduction, so handle zero in your gcd.

What happens if no die has 60 or more sides?+

Every die has net value -1, so it's a full tie. The tie rule picks the smaller side count, so return the minimum of the array with -1/1. Example 2 shows this: [6,20,50] returns 6|-1/1. Don't forget this branch, it's an easy miss.

Do I need floating point or big numbers here?+

No. Side counts reach 10^9, but 100 - s and s fit easily in 64-bit or even 32-bit signed ints. Use integer gcd and never compare expected values as floats. Floats risk rounding errors on ties, and the closed form means you never need to compare fractions anyway.

How should I prepare for this in 48 hours?+

Practice reducing a probability to a closed form before coding, and rehearse gcd-based fraction output with negative numerators and zero. Write a one-pass min tracker. Then test edge cases: all dice under 60, duplicates, exactly 60, exactly 100, and values above 100. That covers nearly every failure.

Problem reported by candidates from a real Online Assessment. Sourced from a publicly-available candidate-aggregated repository. Not affiliated with Jane Street.

OA at Jane Street?
Invisible during screen share
Get it