# NOT RUN {
collatz <- Iterator({
if (n %% 2 == 0) n <- n / 2 else n <- n*3 + 1
},
initial = list(n = 50),
yield = n)
yield_while(collatz, n != 1L)
p_success <- 0.5
threshold <- 100
seeds <- 1000:1e6
iter <- Iterator({
set.seed(seeds[.iter])
n <- n + sample(c(1,-1), 1, prob = c(p_success, 1 - p_success))
},
list(n = 0),
n)
sequence <- yield_while(iter, n <= threshold)
# }
Run the code above in your browser using DataLab