#numbers #digit #set #fibonacci #mapping #benford-ness #benford-tester

benford

用于测试给定数字集合是否符合Benford定律的库

3个版本

0.1.2 2023年1月31日
0.1.1 2023年1月29日
0.1.0 2023年1月29日

2027算法

GPL-3.0 协议

21KB
286

benford

此crate提供了一种测试某些给定数字集合是否符合Benford定律的方法

目前,只使用了第一位数字。你可以通过实现BenfordClass来使用自己的方法将数字映射到数字

示例1:斐波那契数符合Benford...

use benford::{BenfordTester, FirstDigitBase10, Fibonacci};

let mut tester = BenfordTester::default();
let mut fibonacci = Fibonacci::<u64>::default();
for val in fibonacci {
    if val != 0 {
        tester.add_sample::<FirstDigitBase10>(val.into());
    }
}
assert!(tester.is_benford());

示例2:...但只有有限的置信度

如果你的测试集太小

use benford::{Alpha, BenfordTester, FirstDigitBase10, Fibonacci};

let mut tester = BenfordTester::default();
let mut fibonacci = Fibonacci::<u16>::default();
for val in fibonacci {
    if val != 0 {
        tester.add_sample::<FirstDigitBase10>(val.into());
    }
}
assert!(! tester.is_benford());
assert!(tester.is_benford_with_alpha(Alpha::Point9));

示例3:自然数不符合Benford

use benford::{BenfordTester, FirstDigitBase10};

let mut tester = BenfordTester::default();
for val in 1..u16::MAX {
    tester.add_sample::<FirstDigitBase10>(val.into());
}
assert!(! tester.is_benford())

许可证:GPL-3.0

依赖

~2MB
~45K SLoC