组合数后十位

标签: 高精度
5人阅读 评论(0) 收藏 举报
分类:

【题目描述】

求出 C(n,r)的最后十位,其中 0<r≤n≤30000,输出时不足十位数也按十位输出,此
时高位用 0 表示。C(n,r)=n×(n-1)×……×(n-r+1)/(1×2×3×……×r)。

输入数据为两个以空格隔开的自然数 n,r。 

【输入】

一行两个整数

【输出】

一行,10 位数字

【样例输入】

 5 2

【样例输出】

 0000000010

===========================题解=======================

求组合数的末十位。

组合数:C(n,r)=n×(n-1)×……×(n-r+1)/(1×2×3×……×r)

因为其中0<r<=n<=30000,所以要用高精度,但是求组合数的式子中要用到除法,而除数与被除数都是高精度数,高精除高精过于复杂。

由于是组合数,分子除以分母一定可以整除,所以可以先求出分子的所有质因数,再和分母不断约分,之后前面存储分子质因数的数组中就是答案的全部质因数,再将它们用高精度乘法乘起来,注意这里只需要求后10位,所以每次乘法操作时只需要进行十次,之后的就不需要计算了。


查看评论

PHP7数组精讲【king】

由King老师精心录制的PHP7数组详解,主要介绍什么是数组,以及数组的作用,及分类,并深度剖析数组的几种形式,如何使用,重点剖析如何遍历数组,还给大家归纳总结了数组中常用API,最后通过一个实战小例子,将数组中的内容进行实战演示。
  • 2017年08月09日 00:17

Hust oj 1037 组合数末尾的零(组合数)

组合数末尾的零 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 378(179 u...
  • Sara_YF
  • Sara_YF
  • 2016-05-13 11:15:00
  • 554

<模板>Hdu4869 Turn the pokers 组合数求余 费马小定理

Turn the pokers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)...
  • modiz
  • modiz
  • 2014-07-25 15:29:56
  • 797

背诵圆周率前五十位

在微信群公开课上学到的,据说是最强大脑的老师,自己码成文字分享一下。 主要思想就是,编码为故事,记忆故事(词汇),译码为数字。 50位小数划分二维矩阵,5行10列,10列又两两合并,所以是5行5列...
  • u013045370
  • u013045370
  • 2017-02-20 22:37:09
  • 738

输入一个三位数,分离他的百位、十位和个位,反转后输出

#include int main() { int n; scanf("%d", &n); printf("%d%d%d\n", n%10, (n/10)%10, n/100); // 由...
  • wuhui2356
  • wuhui2356
  • 2015-07-17 14:43:19
  • 9304

【noip2011】【数学】计算系数 逆元求组合数

描述 给定一个多项式(ax + by)^k,请求出多项式展开后x^n * y^m项的系数。 输入格式 共一行,包含5个整数,分别为a,b,k,n,m,每两个整数之间用一个...
  • u011327397
  • u011327397
  • 2016-10-15 20:21:48
  • 638

组合数学期末论文资料

  • 2010年07月11日 21:14
  • 2.72MB
  • 下载

VB 用过程求组合数

  • 2010年06月07日 15:06
  • 36KB
  • 下载

VB 函数嵌套求组合数

  • 2010年06月07日 14:52
  • 37KB
  • 下载

[组合数]求组合数的几种方法总结

求C(n,m)%mod的方法总结1.当n,m都很小的时候可以利用杨辉三角直接求。 C(n,m)=C(n-1,m)+C(n-1,m-1);2.利用乘法逆元。 乘法逆元:(a/b)%mod=a*(b^...
  • u010582475
  • u010582475
  • 2015-08-16 22:08:09
  • 4110
    个人资料
    等级:
    访问量: 0
    积分: 394
    排名: 0
    文章存档