📝 docs(solutions):添加排列问题README文档说明欧拉数算法 ♻️ refactor(solutions):重构排列问题代码,添加数学计算方法 ✨ feat(solutions):新增斐波那契问题解决方案,支持大数计算和Binet公式 🔧 chore(solutions):为两个解决方案添加性能计时器装饰器
有序排列
我没想到的是,排列也有很多事情是我没想到的,比如 欧拉数 Eulerian Number。 在 OEIS A008292 还有更多讨论。
本来以为使用python自带的排列方法,就是最快的了。但没想到欧拉数的有序计算逻辑似乎更好用:
对于 n 个元素的排列:
- 总共有
n!种排列 - 以某个特定元素开头的排列有
(n−1)!种 - 这构成了变进制的基础,可以用来计算第
k个排列。
相比在序列上移动要快速多了,毕竟是与原序列的长度相关,而不与位置相关。