计算大的加泰罗尼亚数模素数

Calculating large catalan numbers modulo a prime

有谁知道输入值约为 500.000 的大加泰罗尼亚数模素数(即 1.000.000.007)的快速算法

我已经花了很多时间在这上面,但我无法修改正常的公式来处理那么大的数字,而且动态算法花费的时间太长。

如果有任何帮助,我将不胜感激:)

使用开源和 python-based 程序 sage 在我的旧双核 2.80Ghz 笔记本电脑上需要 11 秒来计算您要求的加泰罗尼亚数字的余数 class:

huisman@thom:~$ sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath Version 6.10, Release Date: 2015-12-18                    │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
└────────────────────────────────────────────────────────────────────┘
sage: time catalan_number(5*10^5).mod(10^9+7)
CPU times: user 11.3 s, sys: 0 ns, total: 11.3 s
Wall time: 11.3 s
213941567

通过检查代码,您可以了解如何快速完成。