【发布时间】:2016-04-06 04:10:03
【问题描述】:
有没有人知道一种快速算法,用于计算一个以素数(即 1.000.000.007)为模的大加泰罗尼亚数,输入值约为 500.000
已经花费了相当长的时间,但我无法修改普通公式以处理如此高的数字,并且动态算法花费的时间太长。
如果有任何帮助,我将不胜感激 :)
【问题讨论】:
-
你能发布你的代码吗?
标签: numbers primes modulo factorial catalan
有没有人知道一种快速算法,用于计算一个以素数(即 1.000.000.007)为模的大加泰罗尼亚数,输入值约为 500.000
已经花费了相当长的时间,但我无法修改普通公式以处理如此高的数字,并且动态算法花费的时间太长。
如果有任何帮助,我将不胜感激 :)
【问题讨论】:
标签: numbers primes modulo factorial catalan
使用开源和基于 python 的程序 sage 在我的旧双核 2.80Ghz 笔记本电脑上需要 11 秒来计算您要求的加泰罗尼亚数的剩余类:
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
通过检查代码,您可以了解如何快速完成。
【讨论】: