#fibonacci #fibonacci-number #fibonacci-sequence #numbers #display #10 #retrieving

fib-sequence

一个用于检索10进制斐波那契数的库

1个不稳定版本

0.1.0 2022年2月11日

#915 in 数学

MIT/Apache

16KB
348

小型斐波那契数列库

这个库非常小巧,只有一个单一的目的。

一个没有依赖项的库,可以计算并显示大的斐波那契数。

请以平常心看待“大”。目前,在1-2百万范围内显示内容需要几秒钟。但如果你不需要那么疯狂,你将快速得到答案。

特性

一个非常酷的结构体“Sequence”,它将生成斐波那契数列作为迭代器!

for (n, value) in fib_sequence::Sequence::new().enumerate().take(100) {
    println!("f({}) = {}", n, value);
}

如你所见,它默认是一个无限迭代器(意味着当你的电脑开始过热时,它就会停止)。所以使用类似take的方法来使其有限。

哦,如果出于某种原因,你只想知道第69420个斐波那契数,你不必遍历序列中的所有这些项。我有一个更快的选项

println!("{}", fib_sequence::nth(69420));

nth函数遵循序列的数学惯例。

f(0) = 0; f(1) = 1; f(2) = 1; ...

我真心建议你避免去到百万以上。这个函数目前是二次的(而且可能保持这样,因为我懒得实现减法,这是实现快速卡拉斯加乘法所必需的)。所以从1到2百万在我的机器上是从2.36秒跳到大约10秒!

啊,为什么它返回字符串??

因为我说了!

不要误会我,我喜欢数字和涉及数字的结构体。然而,我只想让这个库用于人们可以在10进制中操作斐波那契数。所以我想到,为什么我要依赖这个数值抽象,而我不能直接使用字符串,这是每个人都懂得如何使用并且可以轻松处理的东西?你可以将其分割成一个字符向量,计算有多少个6出现,使用len()函数计算有多少个数字等。

你会添加[插入功能]吗?

可能不会。这个库做的一切我都需要。

好吧,但我还可以提建议吗?

当然可以!如果它足够简单,我可能会在未来的版本中添加它。只要在github仓库中给我你的建议。

无运行时依赖