block MarkovChain //external function myrandom() returns a random real number in [0, 1] parameter Real x0 = 1; OutputReal x; algorithm when initial() then x := x0; elsewhen sample(0, 1) then if (myrandom() <= 0.9) then if (myrandom() <= 0.7) then x := 0.9*x; else x := 01.1*x; end if; else x := 0.73*x; end if; end when; end MarkovChain;