【问题标题】:Calculating large catalan numbers modulo a prime计算以素数为模的大加泰罗尼亚数
【发布时间】:2016-04-06 04:10:03
【问题描述】:

有没有人知道一种快速算法,用于计算一个以素数(即 1.000.000.007)为模的大加泰罗尼亚数,输入值约为 500.000

已经花费了相当长的时间,但我无法修改普通公式以处理如此高的数字,并且动态算法花费的时间太长。

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

【问题讨论】:

  • 你能发布你的代码吗?

标签: numbers primes modulo factorial catalan


【解决方案1】:

使用开源和基于 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

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

【讨论】:

    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    相关资源
    最近更新 更多