非确定性 4 行 Rust 程序

问题描述 投票:0回答:1

这是一个简短的 Rust 程序,根据运行时间不同,它会产生不同的输出...我(显然)没有在这里使用计时或多线程。

我已经弄清楚为什么会这样(散列算法是概率性的),但问题仍然是为什么这非常有趣!


use std::collections::HashMap;

fn main() {
    let mut h = HashMap::<i32,i32>::new();
    h.insert(1,1);
    h.insert(2,2);
    
    for k in h.keys(){
        println!("Key {k}")
        }
}
rust non-deterministic
1个回答
0
投票

来自 rust 文档

默认情况下,HashMap 使用选定的哈希算法来抵御 HashDoS 攻击。该算法是随机播种的,

© www.soinside.com 2019 - 2024. All rights reserved.