Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import marimo
- __generated_with = "0.1.58"
- app = marimo.App()
- @app.cell
- def __():
- import fractions
- return fractions,
- @app.cell
- def __(fractions):
- _transitions = {i: fractions.Fraction(6 - abs(i - 7), 36) for i in range(2, 13)}
- assert sum(_transitions.values()) == 1
- def probabilities_from_1_to_n(n=39):
- probabilities = {i: fractions.Fraction() for i in range(-11, 0)}
- probabilities[0] = fractions.Fraction(1)
- for i in range(1, n + 1):
- probabilities[i] = sum(probabilities[i - k] * v for (k, v) in _transitions.items())
- for i in range(-11, 1):
- del probabilities[i]
- return probabilities
- return probabilities_from_1_to_n,
- @app.cell
- def __(probabilities_from_1_to_n):
- sorted(probabilities_from_1_to_n().items(), key=lambda p: -p[1])
- return
- @app.cell
- def __(fractions):
- _transitions = {i: fractions.Fraction() for i in range(3, 19)}
- for i in range(1, 7):
- for j in range(1, 7):
- for k in range(1, 7):
- _transitions[i + j + k] += fractions.Fraction(1, 216)
- assert sum(_transitions.values()) == 1
- def probabilities_from_1_to_n_3d(n=39):
- probabilities = {i: fractions.Fraction() for i in range(-17, 0)}
- probabilities[0] = fractions.Fraction(1)
- for i in range(1, n + 1):
- probabilities[i] = sum(probabilities[i - k] * v for (k, v) in _transitions.items())
- for i in range(-17, 1):
- del probabilities[i]
- return probabilities
- return i, j, k, probabilities_from_1_to_n_3d
- @app.cell
- def __(probabilities_from_1_to_n_3d):
- sorted(probabilities_from_1_to_n_3d().items(), key=lambda p: p[1])
- return
- @app.cell
- def __():
- return
- if __name__ == "__main__":
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement