block MarkovChain //external function myrandom() returns a random real number in [0, 1] parameter Integer x0 = 0; parameter Integer xmax = 100; OutputInteger x; // Connector algorithm when initial() then x := x0; elsewhen sample(0, 1) then if (x < xmax) then if (myrandom() >= 0.8) then x := x + 1; end if; end if; end when; end MarkovChain;