Advertisement
Guest User

Untitled

a guest
Apr 10th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.73 KB | None | 0 0
  1. //Get a number between the two parameters, inclusive
  2. let range =
  3.     let r = new System.Random()
  4.     fun starting ending -> r.Next(starting, ending + 1)
  5.  
  6. let rollDice () = range 1 6
  7.  
  8. let getRoller roll (endCondition : int seq) =
  9.     let rec roller prev =
  10.         if Seq.length prev < Seq.length endCondition || not (Seq.forall2 (=) endCondition prev) then
  11.             roller (roll () :: prev)
  12.         else
  13.             Seq.length prev
  14.     fun () -> roller []
  15.    
  16. let roller_1_1 = getRoller rollDice [ 1 ; 1 ]
  17. let roller_1_2 = getRoller rollDice [ 1 ; 2 ]
  18.  
  19. let result_1_1 = Seq.init 10000 (ignore >> roller_1_1) |> Seq.map float |> Seq.average
  20. let result_1_2 = Seq.init 10000 (ignore >> roller_1_2) |> Seq.map float |> Seq.average
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement