Deterministic RNG: Difference between revisions

From A KoL Wiki
imported>Discordance
No edit summary
imported>Name Guy Man
m whoops, dart perks aren't actually seeded
 
(12 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{NeedsContent|Add links to the spading sheets, add explanations for selection of results}}{{NeedsSpading|Remaining seeds}}To reduce variance in ascensions some content uses random values from a random number generator seeded with a deterministic value. This results in the same values being generated whenever the seed variables are the same. Most commonly in-game this will be experienced as a given class in a path receiving the same items every ascension, while a different class or path receives a different set of items.
{{NeedsContent|Add links to the spading sheets, add explanations for selection of results}}{{NeedsSpading|Remaining seeds}}To reduce variance in ascensions some content uses formulas of different kinds to select results. Some use simple formulas while others produce random values from a random number generator seeded with a deterministic value. This results in the same values being generated whenever the input variables are the same. Most commonly in-game this will be experienced as a given class in a path receiving the same items every ascension, while a different class or path receives a different set of items.


==Seeds==
For brevity this article only covers formulas where the results can differ between players or ascensions.
 
==Algorithms==
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! Content !! Date !! Seed coefficients !! Selection notes
! Content !! Date !! Input calculation !! Type !! Selection notes !! Spading sheet
|-
| [[Summon Confiscated Things]] || 2014 Aug || '''Unknown''' (suspected to use the same formula as continental juice bar) || '''Unknown''' || || [[Summon Confiscated Things#Notes|link]]
|-
| [[continental juice bar]] || 2015 Jan || 3×''[[Paths by number|pathID]]'' + 7×''[[Classes by number|classID]]'' + 5×''daycount'' || || || [[continental juice bar#Notes|link]]
|-
| [[protonic accelerator pack]] || 2016 Aug || 20×''[[Paths by number|pathID]]'' + 30×''[[Classes by number|classID]]'' + 10×''previousGhostsAscension'' || seed || [[protonic accelerator pack]] explains the selection criteria in more detail, the list of zones is adjusted before the result of mt_rand is resolved against it. ||
|-
| [[cornucopia]] || 2016 Nov || 3×''[[Paths by number|pathID]]'' + 7×''[[Classes by number|classID]]'' + 5×''daycount'' + 3×(''previousCornuopias'' + 1) || || || [https://docs.google.com/spreadsheets/d/1jhQv9yGAln0pCpyyZuPMZsvZ3mBIdF_hGcLCcieOg0k/ link]
|-
|-
| [[Summon Confiscated Things]] || 2014 Aug || '''Unknown''' ||
| [[Through the Spacegate]] || 2017 Apr || '''Unknown''' || '''Unknown''' || || [https://docs.google.com/spreadsheets/d/1yi08XJNPbfBAIDTR2rNrBJTPnXCO6GME294zU3afdD8/ old] [https://docs.google.com/spreadsheets/d/1PQmnNRbGgw5tEujG29exyYOSN8fzK5kns54Mw-Dp3uw/ link]
|-
|-
| [[continental juice bar]] || 2015 Jan || ''[[Paths by number|pathID]]'' + ''[[Classes by number|classID]]'' + ''daycount'' ||
| [[New-You Club Membership Form]] || 2017 May || ''[[Paths by number|pathID]]'' + ''[[Classes by number|classID]]'' + ''daycount'' || || || [[New-You Club Membership Form#Items_Received|link]]
|-
|-
| [[protonic accelerator pack]] || 2016 Aug || 20×''[[Paths by number|pathID]]'' + 30×''[[Classes by number|classID]]'' + 10×''previousGhostsAscension'' ||
| [[Meteor Lore]] || 2017 Aug || '''Unknown''' || '''Unknown''' || || [https://docs.google.com/spreadsheets/d/1gSdyuH9KdrxVZZ8YZxbQZfCTPD68sS81vVNv17Oe2x4/ link]
|-
|-
| [[cornucopia]] || 2016 Nov || ''[[Paths by number|pathID]]'' + ''[[Classes by number|classID]]'' + ''daycount'' + 3×(''previousCornuopias'' + 1) ||
| [[Daily Loathing Ballot]] || 2018 Nov || ''[[Paths by number|pathID]]'' + ''[[Classes by number|classID]]'' + 79×''daycount'' || seed ||  ||
|-
|-
| [[New-You Club Membership Form]] || 2017 May || ''[[Paths by number|pathID]]'' + ''[[Classes by number|classID]]'' + ''daycount'' ||
| [[Two Crazy Random Summer]] || 2019 Summer || 100000×''[[Classes by number|classID]]'' + 12345×''[[Moon signs by number|moonSignID]]'' + 50×''[[Items by number|itemID]]'' || || || [https://github.com/kolmafia/kolmafia/tree/main/data/TCRS link]
|-
|-
| [[Meteor Lore]] || 2017 Aug || '''Unknown''' ||
| [[Gaze at the Stars]] || 2019 Aug || ((''daynumber'' + 2 + ''[[Paths by number|pathID]]'') [[Wikipedia:Modulo|mod]] 8) + 1 = ''[[Moon signs by number|moonSignID]]'' || formula || ''daynumber'' is the days since kol came online and can be seen in the api status info. || [https://docs.google.com/spreadsheets/d/1ww4C5LJgBMs5tZZDcrlY1kVEJPu-bZ7gBjpgH2LNOaE/ link]
|-
|-
| [[Daily Loathing Ballot]] || 2018 Nov || ''[[Paths by number|pathID]]'' + ''[[Classes by number|classID]]'' + 79×''daycount'' ||
| [[Seek out a Bird]] || 2020 Jan || 11×''[[Paths by number|pathID]]'' + 23×''[[Classes by number|classID]]'' + 37×''daycount'' || seed || the algorithm predicts almost all of it; it does not predict the weapon damage/regen bit on the end, or bird name. || [https://docs.google.com/spreadsheets/d/1xFe8-TL5tb0Y0zQ-W4nyz4grA1jcNMoeOlbRUkrIQfU/ link]
|-
|-
| [[Two Crazy Random Summer]] || 2019 Summer || 100000×''[[Classes by number|classID]]'' + 12345×''[[Moon signs by number|moonSignID]]'' + 50×''[[Items by number|itemID]]'' ||
| [[fresh coat of paint]] || 2021 || '''Unknown''' || '''Unknown''' || || [https://docs.google.com/spreadsheets/d/1iIgX2V_uFiwtBXWwCUEox6bCy1mYBGmQumC3K9RTvVY/ link]
|-
|-
| [[Gaze at the Stars]] || 2019 Aug || days since ??? + ''[[Paths by number|pathID]]'' (mod 8) ||
| [[Our Daily Candles™ order form]] || 2021 Aug || ''[[Paths by number|pathID]]'' + 19×''[[Classes by number|classID]]'' + 1×''daycount'' || || || [https://docs.google.com/spreadsheets/d/1LFQIHUWNC7GqpIq2JtB4H0XTz517KYwgokbHGO5Qovo/ link]
|-
|-
| [[Seek out a Bird]] || 2020 Jan || 11×''[[Paths by number|pathID]]'' + 23×''[[Classes by number|classID]]'' + 37×''daycount'' || the formula predicts almost all of it; it does not predict the weapon damage/regen bit on the end, or bird name.
|rowspan="2"| [[Daylight Shavings Helmet]] ||rowspan="2"| 2021 Nov || (''[[Classes by number|classID]]''×''beardBuffCountAscension'') [[Wikipedia:Modulo|mod]] 11 (if ''[[Classes by number|classID]]'' <7) ||rowspan="2"| formula ||rowspan="2"| selects from a list of the 11 buffs ||rowspan="2"| [https://docs.google.com/spreadsheets/d/17XglXmAM-HOB6nVBYVm2dLkbZ1OL4RYWueWz750vC00 link]
|-
|-
| [[fresh coat of paint]] || 2021 || '''Unknown''' ||
| ((''[[Classes by number|classID]]'' [[Wikipedia:Modulo|mod]] 6 + 1)×''beardBuffCountAscension'') [[Wikipedia:Modulo|mod]] 11 (if ''[[Classes by number|classID]]'' >6)
|-
|-
| [[Our Daily Candles™ order form]] || 2021 Aug || ''[[Paths by number|pathID]]'' + 19×''[[Classes by number|classID]]'' + ''daycount'' ||
| [[MayDay™ supply package]] || 2022 May || -1×''[[Paths by number|pathID]]'' + 11×''[[Classes by number|classID]]'' + 13×''daycount'' || || || [https://docs.google.com/spreadsheets/d/1QJrYiW27iXmaEpqiCat-VgdNREIsAyWOGHWrPMGpB5g/ link]
|-
|-
| [[Daylight Shavings Helmet]] || 2021 Nov || ((''[[Classes by number|classID]]'' % 6 + 1)×''beardBuffCountSinceStartOfAscension'') % 11 (''[[Classes by number|classID]]'' >6) ||
| [[Cookbookbat]] || 2022 Nov || 37×''[[Paths by number|pathID]]'' + 11×''[[Classes by number|classID]]'' + 420×(''daycount'' − 1) + 69×''previousDropsToday'' || || ||
|-
|-
| [[MayDay™ supply package]] || 2022 May || -1×''[[Paths by number|pathID]]'' + 11×''[[Classes by number|classID]]'' + 13×''daycount'' ||
| [[Just the Facts]] || 2023 Sep || 11×''[[Paths by number|pathID]]'' + 421×''[[Classes by number|classID]]'' + ''[[Monsters by number|monsterID]]'' || || || [https://docs.google.com/spreadsheets/d/1LQm0GGlFsiEjp20IIgjBgCPCtetnLpN96ek0MYxHB8A/ link]
|-
|-
| [[Cookbookbat]] || 2022 Nov || 37×''[[Paths by number|pathID]]'' + 11×''[[Classes by number|classID]]'' + 420×(''daycount'' − 1)  + 69×''previousDropsToday'' ||
| [[wardrobe-o-matic]] || 2023 Nov || ''daynumber''×''[[Items by number|itemID]]'' + 2063 || seed || || [https://docs.google.com/spreadsheets/d/1roB9HArW579e1vXqZBn9SEiuH0Fi2FhLYZ7UWDLl9vk/ link]
|-
|-
| [[Just the Facts]] || 2023 Sep || 11×''[[Paths by number|pathID]]'' + 421×''[[Classes by number|classID]]'' + ''[[Monsters by number|monsterID]]'' ||
| [[Prepare your Meal]] || 2024 || '''Unknown''' || '''Unknown''' || || [https://docs.google.com/spreadsheets/d/1QFYnIw-M2AitR6MlRU42XB-NyG8wMyFlRDSqEtz4n8Y/ link]
|-
|-
| [[wardrobe-o-matic]] || 2023 Nov || '''Unknown''' ||
| [[yam battery]] || 2024 May || '''Unknown''' || '''Unknown''' || || [https://docs.google.com/spreadsheets/d/12pFsmmOwlh4AUaStXfSlSd19mvMvbL0FQAv_d2g6d8Y/ link]
|-
|-
| [[Prepare your Meal]] || 2024 || '''Unknown''' ||
| [[Beret Busking]] || 2025 June || ''totalArmorPower'' + ''previousCastsDay'' || seed || ''totalArmorPower'' is the power of your currently-equipped defensive items (hat, shirt, pants) including the bonus from [[Tao of the Terrapin]], and additional hats in [[Hat Trick]]. Effects are picked in order from a predefined list of effects that are generally [[ittah bittah hookah|wishable]]. || [https://docs.google.com/spreadsheets/d/1dZ0btBCt2bwXBPspFJRZaDU-67QdsfCv1XIZdeTKY_s/ link]
|}
|}


[[Category:Game Mechanics]]
[[Category:Game Mechanics]]

Latest revision as of 19:59, 28 August 2025

This page is in need of content.

Add links to the spading sheets, add explanations for selection of results
There are some vague or non-exact figures and information on this page. Some spading is required.

Remaining seeds

To reduce variance in ascensions some content uses formulas of different kinds to select results. Some use simple formulas while others produce random values from a random number generator seeded with a deterministic value. This results in the same values being generated whenever the input variables are the same. Most commonly in-game this will be experienced as a given class in a path receiving the same items every ascension, while a different class or path receives a different set of items.

For brevity this article only covers formulas where the results can differ between players or ascensions.

Algorithms

Content Date Input calculation Type Selection notes Spading sheet
Summon Confiscated Things 2014 Aug Unknown (suspected to use the same formula as continental juice bar) Unknown link
continental juice bar 2015 Jan pathID + 7×classID + 5×daycount link
protonic accelerator pack 2016 Aug 20×pathID + 30×classID + 10×previousGhostsAscension seed protonic accelerator pack explains the selection criteria in more detail, the list of zones is adjusted before the result of mt_rand is resolved against it.
cornucopia 2016 Nov pathID + 7×classID + 5×daycount + 3×(previousCornuopias + 1) link
Through the Spacegate 2017 Apr Unknown Unknown old link
New-You Club Membership Form 2017 May pathID + 1×classID + 1×daycount link
Meteor Lore 2017 Aug Unknown Unknown link
Daily Loathing Ballot 2018 Nov pathID + 9×classID + 79×daycount seed
Two Crazy Random Summer 2019 Summer 100000×classID + 12345×moonSignID + 50×itemID link
Gaze at the Stars 2019 Aug ((daynumber + 2 + pathID) mod 8) + 1 = moonSignID formula daynumber is the days since kol came online and can be seen in the api status info. link
Seek out a Bird 2020 Jan 11×pathID + 23×classID + 37×daycount seed the algorithm predicts almost all of it; it does not predict the weapon damage/regen bit on the end, or bird name. link
fresh coat of paint 2021 Unknown Unknown link
Our Daily Candles™ order form 2021 Aug pathID + 19×classID + 1×daycount link
Daylight Shavings Helmet 2021 Nov (classID×beardBuffCountAscension) mod 11 (if classID <7) formula selects from a list of the 11 buffs link
((classID mod 6 + 1)×beardBuffCountAscension) mod 11 (if classID >6)
MayDay™ supply package 2022 May -1×pathID + 11×classID + 13×daycount link
Cookbookbat 2022 Nov 37×pathID + 11×classID + 420×(daycount − 1) + 69×previousDropsToday
Just the Facts 2023 Sep 11×pathID + 421×classID + monsterID link
wardrobe-o-matic 2023 Nov daynumber×itemID + 2063 seed link
Prepare your Meal 2024 Unknown Unknown link
yam battery 2024 May Unknown Unknown link
Beret Busking 2025 June totalArmorPower + previousCastsDay seed totalArmorPower is the power of your currently-equipped defensive items (hat, shirt, pants) including the bonus from Tao of the Terrapin, and additional hats in Hat Trick. Effects are picked in order from a predefined list of effects that are generally wishable. link