Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Get a number between the two parameters, inclusive
- let range =
- let r = new System.Random()
- fun starting ending -> r.Next(starting, ending + 1)
- let rollDice () = range 1 6
- let getRoller roll (endCondition : int seq) =
- let rec roller prev =
- if Seq.length prev < Seq.length endCondition || not (Seq.forall2 (=) endCondition prev) then
- roller (roll () :: prev)
- else
- Seq.length prev
- fun () -> roller []
- let roller_1_1 = getRoller rollDice [ 1 ; 1 ]
- let roller_1_2 = getRoller rollDice [ 1 ; 2 ]
- let result_1_1 = Seq.init 10000 (ignore >> roller_1_1) |> Seq.map float |> Seq.average
- 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