Advertisement
lippiod

mri snowflake best case

Dec 21st, 2019
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var rng = new PM_PRNG(View.snowState);
  2. var found = false;
  3. var snowballs = View.snowballsFound;
  4. var count = 0;
  5.  
  6. /*
  7. Best case: finding the lowest possible value of [snowballsNeededLow]
  8. Collect a stack of [stackNeededHigh ~ stackNeededLow] snowballs when [snowballsNeededHigh ~ snowballsNeededLow] snowballs are found
  9. Note that snowballsNeededHigh + stackNeededHigh = snowballsNeededLow + stackNeededLow = total snowballs needed
  10. */
  11. var snowballsNeededLow=-1, stackNeededLow=-1, snowballsNeededHigh=-1, stackNeededHigh=-1;
  12. while (!found)
  13. {
  14.   var t_snowballsNeededLow, t_stackNeededLow, t_snowballsNeededHigh, t_stackNeededHigh;
  15.   var roll = rng.nextDouble();
  16.  
  17.   if (roll <= Math.pow(snowballs + count + 720, 2) / 9000000000)
  18.   {
  19.     t_snowballsNeededHigh = snowballs + count;
  20.     t_stackNeededHigh = Math.ceil(Math.sqrt(roll * 9000000000)) - t_snowballsNeededHigh
  21.     if (t_stackNeededHigh <= 0)
  22.     {
  23.       found = true;
  24.       t_stackNeededHigh = 1
  25.     }
  26.  
  27.     var diff = 720 - t_stackNeededHigh;
  28.     if (count - diff <= snowballs)
  29.       diff = count;
  30.  
  31.     t_snowballsNeededLow = t_snowballsNeededHigh - diff;
  32.     t_stackNeededLow = t_stackNeededHigh + diff;
  33.  
  34.     if (snowballsNeededLow < 0 || snowballsNeededLow > t_snowballsNeededLow)
  35.     {
  36.       snowballsNeededLow = t_snowballsNeededLow;
  37.       snowballsNeededHigh = t_snowballsNeededHigh;
  38.       stackNeededLow = t_stackNeededLow;
  39.       stackNeededHigh = t_stackNeededHigh;
  40.     }
  41.   }
  42.  
  43.   count++;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement