]> git.puffer.fish Git - matthieu/gru.git/commitdiff
make weighted probabilities depending on node's children children count
authorMatthieu Pignolet <matthieu@matthieu-dev.xyz>
Thu, 6 Jun 2024 10:15:04 +0000 (14:15 +0400)
committerMatthieu Pignolet <matthieu@matthieu-dev.xyz>
Thu, 6 Jun 2024 10:15:04 +0000 (14:15 +0400)
autofeur_db/src/trie.rs

index 6d0867a99705a50534ee16d754e441f2a837cb95..a14c56e89e5573713df4a3c0ff12bc34e834bdf1 100644 (file)
@@ -109,11 +109,11 @@ impl<'a> Trie<'a> {
         while current_node.child_nodes.len() != 0 {
             // We need to choose a random child based on weights
             let weighted = WeightedIndex::new(current_node.child_nodes.iter().map(|(_, node)| {
-                node.child_count / node
+                node.child_count / (node
                     .child_nodes
                     .iter()
                     .map(|(_, b)| b.child_count)
-                    .sum::<u64>()
+                    .sum::<u64>() + 1)
             }))
             .expect("distribution creation should be valid");