斯特灵公式是一条用来取n阶乘的近似值的数学公式。

公式为:

用该公式我们可以用来估算n阶乘的值;估算n阶乘的在任意进制下的位数。

如何计算在R进制下的位数:我们可以结合对数来计算,比如十进制就是lg(n!)+1,二进制则是log2(n!)+1。

Lucas(卢卡斯)定理

公式为:

当然,当n较小时,我们可以用组合数里面的定理来递推求解。

然而当n较大时,显然时间花费很大。而Lucas定理恰好是解决大组合数取模的优解。

在这里由于知识有限,不能完全看懂Lucas定理证明的全部过程。所以就不写了。

而代码实现Lucas定理也很简洁。只需要递归就行。

使用Lucas定理的时候需要注意:p不能太大于10^5。

Cnm=Cn/pm/p×Cnmodpmmodp(modp)。
Cnm=Cn/pm/p×Cnmodpmmodp(modp)。
Cnm=Cn/pm/p×Cnmodpmmodp(modp)。

Lucas定理 、斯特灵公式的更多相关文章

  1. 7-n!的位数(斯特灵公式)

    http://acm.hdu.edu.cn/showproblem.php?pid=1018 Big NumberTime Limit: 2000/1000 MS (Java/Others) Memo ...

  2. hdu 3944 DP? 组合数取模(Lucas定理+预处理+帕斯卡公式优化)

    DP? Problem Description Figure 1 shows the Yang Hui Triangle. We number the row from top to bottom 0 ...

  3. 数据结构作业——N!的位数(斯特灵公式)

    Description 求N!的位数 Input 输入第一行为一个正整数 n(1<=n<=25000). Output 输出 n!的位数. Sample Input 1020 Sample ...

  4. [牛客OI测试赛2]F假的数学游戏(斯特灵公式)

    题意 输入一个整数X,求一个整数N,使得N!恰好大于$X^X$. Sol 考试的时候只会$O(n)$求$N!$的前缀和啊. 不过最后的结论挺好玩的 $n! \approx \sqrt{2 \pi n} ...

  5. hdu1018--斯特灵公式

    斯特灵公式 Wiki http://zh.wikipedia.org/wiki/斯特林公式 /** \brief hdu 1018 * * \param date 2014/7/24 * \param ...

  6. 【(好题)组合数+Lucas定理+公式递推(lowbit+滚动数组)+打表找规律】2017多校训练七 HDU 6129 Just do it

    http://acm.hdu.edu.cn/showproblem.php?pid=6129 [题意] 对于一个长度为n的序列a,我们可以计算b[i]=a1^a2^......^ai,这样得到序列b ...

  7. 组合数(Lucas定理) + 快速幂 --- HDU 5226 Tom and matrix

    Tom and matrix Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5226 Mean: 题意很简单,略. analy ...

  8. 51nod 1120 机器人走方格 V3 卡特兰数 lucas定理

    N * N的方格,从左上到右下画一条线.一个机器人从左上走到右下,只能向右或向下走.并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 100 ...

  9. Bzoj 4591: [Shoi2015]超能粒子炮·改 数论,Lucas定理,排列组合

    4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 178  Solved: 70[Submit][Stat ...

  10. ZOJ3557 How Many Sets II( Lucas定理)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud How Many Sets II Time Limit: 2 Seconds    ...

随机推荐

  1. 淘宝详情api接口的应用

    淘宝详情API接口是一个基于HTTP协议的接口服务,可用于获取淘宝商品的具体信息.下面将介绍如何调用淘宝详情API接口获取淘宝商品数据的步骤. 1.注册账号并创建应用 首先,我们需要进行账号注册.实名 ...

  2. 我找回了我喜欢的Github Old Feed

    前言 这周Github更新了个人主页Feed(指的是用户的活动源或动态源),作为GitHub重度爱好者而言New Feed完全不是我之前所喜欢的效果.虽然说New Feed添加了允许用户可以自定义配置 ...

  3. Vue源码学习(七):合并生命周期(混入Vue.Mixin)

    好家伙,   1.使用场景 现在来,来想一下,作为一个使用Vue的开发者,假设现在我们要使用created(),我们会如何使用 1.1.  .vue文件中使用 <template> < ...

  4. C++ typedef用法详解

    typedef的语法描述   在现实生活中,信息的概念可能是长度,数量和面积等.在C语言中,信息被抽象为int.float和 double等基本数据类型.从基本数据类型名称上,不能够看出其所代表的物理 ...

  5. Keycloak 创建和修改自定义用户信息

    前言 公司在用 Keycloak 作为认证服务器,之前在系统数据库里存的,后来想了想是不是可以在 Keycloak 中存.在网上找的方法大多都是通过 admin 接口去改,但这种方法就需要两种解决方案 ...

  6. 利用ChatGPT提升测试工作效率——测试工程师的新利器(一)

    1.前言 随着ChatGPT的爆火,各个行业开始尝试利用ChatGPT来提升工作效率.其中,测试工程师们也开始探索如何应用ChatGPT来加强测试工作.在本文中,我们将从测试工程师的角度出发,探讨Ch ...

  7. 采用ResNet网络+TSNE降维算法对自建图像数据集进行二维可视化显示

    起因:某一天下午,我在"玩"的时候,突然接到了老板的电话,说是要对图像做可视化降维.因此,我拿到了一批图像的数据. 数据的特点: 1.数据集的图像分为4类,并且每一种类的图像多少不 ...

  8. 【数字图像处理】Matlab实现-图像增强-灰度图像增强

    灰度图像增强的大致原理以及操作方法 面向作业编程 上图是大概对灰度图的增强处理 就是想让图片变得更好看 那么如何具体操作就看下面的代码了 这是一个简单的线性分段处理,相信在注释的帮助下应该能看懂. % ...

  9. react 16.3生命周期更新解析

    React v16.3虽然是一个小版本升级,但是却对React组件生命周期函数有巨大变化. 文章梗概 新版本+2-3个生命周期. 为什么增加那2个生命周期? 为什么减去之前3个生命周期? 相关知识延伸 ...

  10. 生产真实案例:震惊,几条SQL把服务器干崩了,事后还大言不惭!

    大家好,我是冰河~~ 今天跟大家分享一个发生在今天凌晨的真实案例,这篇文章也是我事后临时写出来的,处理事情的过程有点无语,又有点气愤! 事件背景 事情的背景是这样的:一个朋友今年年初新开了一家公司,自 ...