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()
Comments