Repository navigation
fix(port): a split random keeps its weights - #124
Merged
Merged
Conversation
A random that opens a branch of a random reads the draw its parent read, so it is no CORRELATED_DRAW; its branches the parent's band never reaches are ARM_UNREACHABLE. The CORRELATED_DRAW text says the draw is a counter a step only adds 1 to. `draw` holds the pick's semantics once (take, spans, nested); `catalogue.shares` uses it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A donor random of more than 13 arms is an outer random over groups and an inner per group. MHFU's random reads the entity's draw without advancing it, so the inner read the outer's value (plus 1, after a step) confined to its group's band and 4-6 arms of each of the Zinogre's splits were never taken. The weights are now rounded once over all arms and each inner is laid out over its band of the outer's draw, unstepped: every value takes the arm one random over all of them would. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #123. MHFU's
randomreads the entity's counter (+0x322 & 0x1F) without advancing it;rng_step/rng_step2only add 1. A split random's inner pick read its outer's draw + 1, confined to its group's band: in each of the Zinogre's 10 splits 4-6 of 14-16 arms were never taken.brain/splice.py): one rounding over all arms;layoutputs each inner random over its group's band of the same draw, unstepped, so every value takes the arm a single 32-way pick would. A group of one arm is its body.em/script/draw.py, the one place for pick semantics): a random that opens a branch of a random reads its parent's draw, so it is notCORRELATED_DRAW; a branch its band never reaches isARM_UNREACHABLE(warning).CORRELATED_DRAW's text says a step does not decorrelate (owner: draws after a draw stay, as in MHFU's own scripts).CORRELATED_DRAW35 → 15, noARM_UNREACHABLE, every live donor arm of each split reached. Brute: container unchanged.Tests: the layout over four weight sets (one totalling 90), stepping, the checker,
draw; with game data, the Zinogre's splits and the Brute.Live (lane 3 re-run with #125, #126 and #121, 5880 s, two quests): every one of the 145 leaf arms of the 10 splits reachable; 90 taken in 394 picks (the two enraged-and-tired splits never came up).
🤖 Generated with Claude Code