fork(1) download
  1. import itertools
  2.  
  3. def add_dice(die1, die2):
  4. die3 = [0]*(len(die1) + len(die2) - 1)
  5. for i, prob1 in enumerate(die1):
  6. for j, prob2 in enumerate(die2):
  7. die3[i+j] += prob1*prob2
  8. return die3
  9.  
  10. def add_multi(dice):
  11. res = [1]
  12. for die in dice:
  13. res = add_dice(res, die)
  14. return res
  15.  
  16. def cumsum(die):
  17. return list(itertools.accumulate(die))
  18.  
  19. one_die = [0.6, 0.3, 0.1]
  20.  
  21. pool = add_multi([one_die]*12)
  22. print(cumsum(pool))
Success #stdin #stdout 0.03s 9788KB
stdin
Standard input is empty
stdout
[0.0021767823359999995, 0.015237476351999995, 0.05550794956799998, 0.13931406950399994, 0.2705105548799999, 0.43413202713599985, 0.6024648222719998, 0.7486266862079998, 0.8574270668639997, 0.9276188493599997, 0.9671610515759997, 0.9867084750719998, 0.9952117125929998, 0.9984696165089998, 0.9995680110149998, 0.9998929729709998, 0.9999769238819998, 0.9999957204179998, 0.9999993283739997, 0.9999999128699998, 0.9999999909809998, 0.9999999992969998, 0.9999999999629998, 0.9999999999989998, 0.9999999999999998]