Advertisement
mwchase

Fiddler 2023-12-01

Dec 3rd, 2023
999
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.83 KB | None | 0 0
  1. import marimo
  2.  
  3. __generated_with = "0.1.58"
  4. app = marimo.App()
  5.  
  6.  
  7. @app.cell
  8. def __():
  9.     import fractions
  10.     return fractions,
  11.  
  12.  
  13. @app.cell
  14. def __(fractions):
  15.     _transitions = {i: fractions.Fraction(6 - abs(i - 7), 36) for i in range(2, 13)}
  16.  
  17.     assert sum(_transitions.values()) == 1
  18.  
  19.     def probabilities_from_1_to_n(n=39):
  20.         probabilities = {i: fractions.Fraction() for i in range(-11, 0)}
  21.         probabilities[0] = fractions.Fraction(1)
  22.         for i in range(1, n + 1):
  23.             probabilities[i] = sum(probabilities[i - k] * v for (k, v) in _transitions.items())
  24.         for i in range(-11, 1):
  25.             del probabilities[i]
  26.         return probabilities
  27.        
  28.     return probabilities_from_1_to_n,
  29.  
  30.  
  31. @app.cell
  32. def __(probabilities_from_1_to_n):
  33.     sorted(probabilities_from_1_to_n().items(), key=lambda p: -p[1])
  34.     return
  35.  
  36.  
  37. @app.cell
  38. def __(fractions):
  39.     _transitions = {i: fractions.Fraction() for i in range(3, 19)}
  40.  
  41.     for i in range(1, 7):
  42.         for j in range(1, 7):
  43.             for k in range(1, 7):
  44.                 _transitions[i + j + k] += fractions.Fraction(1, 216)
  45.  
  46.     assert sum(_transitions.values()) == 1
  47.  
  48.     def probabilities_from_1_to_n_3d(n=39):
  49.         probabilities = {i: fractions.Fraction() for i in range(-17, 0)}
  50.         probabilities[0] = fractions.Fraction(1)
  51.         for i in range(1, n + 1):
  52.             probabilities[i] = sum(probabilities[i - k] * v for (k, v) in _transitions.items())
  53.         for i in range(-17, 1):
  54.             del probabilities[i]
  55.         return probabilities
  56.     return i, j, k, probabilities_from_1_to_n_3d
  57.  
  58.  
  59. @app.cell
  60. def __(probabilities_from_1_to_n_3d):
  61.     sorted(probabilities_from_1_to_n_3d().items(), key=lambda p: p[1])
  62.     return
  63.  
  64.  
  65. @app.cell
  66. def __():
  67.     return
  68.  
  69.  
  70. if __name__ == "__main__":
  71.     app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement