用一种惯用的方法来获得与前一个数字不同的随机数?

时间:2019-01-05 02:05:11

标签: random rust idioms

在Rust中有更好的方法吗?

let mut current_index = rng.gen_range(0, 5);
while current_index == previous_index {
    current_index = rng.gen_range(0, 5);
}

2 个答案:

答案 0 :(得分:4)

不确定惯用语言,但这可以避免循环:

let current_index = (previous_index + rng.gen_range(1, 5)) % 5;

答案 1 :(得分:0)

取决于您想做什么,SliceRandom::choose_multipleSliceRandom::shuffle