Seed the lethality sim per creature (R-252)
Each creature now derives its own seed from its key, FNV-1a mixed into
the base seed, instead of every one of them being measured against seed
11.
This is the second reading of the request and the one I had not tested.
What I checked before was position independence — whether a creature's
numbers depend on its neighbours — and that was already true and still
is: inserting a creature ahead of the barghest changes 0 of 47 existing
rows under the new scheme, same as the old. What was NOT true is that
each creature had its own dice. All forty-seven faced the same two
hundred sequences.
Measured, because the argument for doing it is better than the result:
shared 11 per-creature
mean wipe rate across bestiary 5.67% 5.67%
mean agents down 0.538 0.522
rows changed -- 34 of 47
Seed 11 was not biasing the book. There was no systematic luck to
remove, and the aggregate is unmoved to two decimal places. What the
change buys is decorrelation: the error in each row no longer comes from
the same draw as every other row.
The useful number fell out of the comparison rather than the change.
Individual creatures moved up to four points of wipe rate purely from
being handed different dice — the courier 3.5% -> 7.5%, the long walker
66.5% -> 62.5%, quarantine unit 84.5% -> 88.5%. That is the sampling
noise inside any single recorded figure at 200 runs, and it means these
numbers are an exact regression fingerprint and a loose description of a
creature at the same time. Only more runs narrows the second; more seeds
does not. R-252 says so on the page.
seedMode is recorded alongside the numbers and checked, because changing
how a seed is derived moves every row without changing SEED itself. A
baseline from the old scheme is now refused rather than compared against
this one silently and wrongly — verified by running the new code against
the old file before re-recording.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e54ce9130d
commit
2dbea88d4b
@@ -5175,3 +5175,45 @@ Two corrections to the record, both mine, both from explaining before measuring:
|
||||
|
||||
The baseline recorded in `e5dc9b5` already carries these numbers. What was missing was
|
||||
this page.
|
||||
|
||||
### R-252. One seed's luck, spread across forty-seven creatures
|
||||
|
||||
Every creature was measured against seed 11. That made each one independent of its
|
||||
neighbours — the property I had wrongly claimed was broken in R-251 — but it also gave
|
||||
all forty-seven of them the *same two hundred dice*. Independent of position, identical
|
||||
in luck.
|
||||
|
||||
Each creature now derives its own seed from its key (FNV-1a mixed into the base seed),
|
||||
which is still deterministic, still reproducible from the base seed alone, and still
|
||||
local: adding a creature changes 0 of 47 existing rows, measured, exactly as before.
|
||||
|
||||
What it was worth is smaller than the argument for it, and worth writing down honestly:
|
||||
|
||||
| | shared seed 11 | per-creature |
|
||||
|---|---|---|
|
||||
| mean wipe rate across the bestiary | 5.67% | **5.67%** |
|
||||
| mean agents down | 0.538 | 0.522 |
|
||||
| rows that changed | — | 34 of 47 |
|
||||
|
||||
So seed 11 was **not** biasing the book. There was no systematic luck to remove, and
|
||||
anyone expecting the creatures to look collectively softer or harder afterwards would
|
||||
have been disappointed. What the change does is decorrelate: the errors in individual
|
||||
rows no longer all come from the same draw.
|
||||
|
||||
The more useful number fell out of the comparison. Individual creatures moved by up to
|
||||
four points of wipe rate — the courier 3.5% → 7.5%, the long walker 66.5% → 62.5%,
|
||||
quarantine unit 84.5% → 88.5% — purely from being handed different dice. That is the
|
||||
size of the sampling noise sitting inside any single recorded figure at 200 runs.
|
||||
|
||||
Which means the two things this file records must be read differently, and the header
|
||||
has always said so:
|
||||
|
||||
- As a **regression fingerprint** the numbers are exact and now compared exactly. Any
|
||||
movement is a real change to the rules or the creature. That is what the guard is for.
|
||||
- As a **description of a creature** a single figure carries several points of slack.
|
||||
"The courier wipes 7.5% of parties" is one sample, not a property. Raising the run
|
||||
count is the only thing that narrows it; more seeds does not.
|
||||
|
||||
`seedMode` is recorded alongside the numbers, because changing how a seed is derived
|
||||
moves every row without changing `SEED` itself, and a baseline from the old scheme would
|
||||
otherwise have been compared against this one silently and wrongly. It is refused now.
|
||||
|
||||
Reference in New Issue
Block a user