Преобразование раздела 2 - это просто map
:
numbers = numbers.into_iter()
.map(|x| x * dt.sqrt())
.collect::<Vec<_>>();
Чтобы объединить, просто добавьте map
в какой-то момент:
numbers = iter::repeat(())
.map(|()| rng.gen_range(0., 1.))
.map(|x| x * dt.sqrt())
.take(N)
.collect::<Vec<f64>>();
Или, если вы предпочитаете:
numbers = iter::repeat(())
.map(|()| rng.gen_range(0., 1.) * dt.sqrt())
.take(N)
.collect::<Vec<f64>>();