
C++数论知识
这一专栏包括了容斥原理,质数,GCD和LCM等数论知识详解和代码。
C2020lax
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++矩阵加速例题斐波拉契数列变式—————TR的数列
题目描述:TR非常喜欢数学,经常一个人拿出草稿纸研究奇奇怪怪的数学问题,最近,他突然对数列产生了兴趣,他找到一个数列,类似于斐波拉契,即:Tn=1*f1+2*f2+3*f3+……+n*fn (fn为斐波拉契的第n项值)现在TR想请你帮忙求Tn%m的值输入:两个用空格隔开的整数n和m1≤n,m≤-1输出:Tn mod m的值输入样例:5 5输出样例:...原创 2019-04-04 12:33:55 · 350 阅读 · 0 评论 -
C++矩阵及其加速—————求斐波拉契数列第n项讲解
前言:也许你只是不小心点入了此博客,为了不眛自己的良心,首先我们会介绍什么是矩阵。概念:在数学中,矩阵(Matrix)是一个按照长方阵列排列的实数或复数集合,最早来自于方程组的系数及常数所构成的方阵。由m×n个数aij排成的m行n列的数表称为m行n列的矩阵,简称m×n矩阵。记作:而矩阵中的各个元素就是元。元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列...原创 2019-04-02 13:33:38 · 1090 阅读 · 0 评论 -
解二元一次方程————拓展欧几里得算法
二元一次方程的定义: 含有两个未知数,并且含有未知数的项的次数都是1的整式方程叫做二元一次方程。所有二元一次方程都可化为ax+by+c=0(a、b≠0)的一般式与ax+by=c(a、b≠0)的标准式,否则不为二元一次方程。 适合一个二元一次方程的每一对未知数的值,叫做这个二元一次方程的一个解。每个二元一次方程都有无数对方程的解,由二元一次方程组成的二元一次方程组才可能有唯一解,...原创 2019-02-28 13:50:46 · 6091 阅读 · 1 评论 -
C++基础数论————排列组合
排列组合的定义:排列就是从n个数中找出m个进行排列,共有多少种方案?这一定要考虑顺序。公式就是:而组合就从从n个数中找出m个进行组合,共有多少种方案?这一定不要考虑顺序。公式就是:现在,我们来看一看它的性质:而我们该如何计算组合数呢?计算组合数:这一共有2种方法。1、根据定义直接暴力求出组合数,但是其时间复杂度较长而且有溢出的风险,所以不推荐...原创 2019-02-28 17:32:05 · 4086 阅读 · 2 评论 -
C++初等数论同余——欧拉函数与CRT
前言: 在我们开始学习欧拉函数与CRT之前,我们得先搞清楚什么是同余。 两个整数同时除于一个相同的数,如果它们的余数相等,则称它们两个数互余。 符号语言: 当然它一定是有一些性质的,下面请听我慢慢介绍。 一是自反性: 二是对称性: 三是传递性: 当然它还有等价定义: 而这也说明了:若则。注意...原创 2019-03-01 14:08:54 · 1023 阅读 · 0 评论 -
基础数论—————论拉格朗日插值法
前言:此博客将没有任何的代码,纯数学,若已经明白拉格朗日插值法的就可以离开了(但是阅读量增加了,O(∩_∩)O~)。好了,现在我们回归正题,什么是拉格朗日插值法。简介:拉格朗日插值法,顾名思义,就是拉格朗日的插值法,是在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和...原创 2019-03-07 16:48:48 · 647 阅读 · 0 评论 -
C++Legendre定理及其例题讲解—————方程
前言:Legendre定理是一个你无法想象到的定理,而它的用处也是十分的大,现在亲听我慢慢讲解。Legendre定理:设n为一个正整数,那么在的标准素因子分解式中,素数p的最高次项为,则 当模数不为素数,且不方便使用CRT进行合并时,可以考虑对组合数分解质因...原创 2019-03-07 17:51:16 · 1650 阅读 · 0 评论 -
C++基础数论—————容斥原理
前言: 温馨提示,此篇博客将涉及排列组合(链接)。概念: 在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 好了,我们理解...原创 2019-03-18 13:25:40 · 2930 阅读 · 0 评论 -
C++数论容斥原理—————无关的元素
题目描述;对于给定的n个数a1,a2,...,an,依次求出相邻两数之和,将得到一个新数列。重复上述操作,最后结果将变成一个数。问这个数除以m的余数与哪些数无关?例如n=3,m=2时,第一次求和得到a1+a2,a2+a3,再次求和得到a1+2a2+a3,它除以2的余数和a2无关。输入:第1行:2个整数n和m(1<=n<=10^5, 2 <=m<=10^9)...原创 2019-03-20 14:23:53 · 439 阅读 · 0 评论 -
C++容斥原理—————表达式计数
题目描述:给出n个数,b1,b2,b3……bn,构造n个数,a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn;问一共有多少种数列a1,a2,……an满足上述条件。输入:包含多组输入数据每组数据第一行有1个整数n(1<=n<=20)每组数据第 二行有n个整数第i个数表示bi.(1<bi<=1000000)且b1*...原创 2019-03-25 13:27:44 · 1559 阅读 · 0 评论 -
C++关于质数的判定与筛法
前言: 质数,是相伴了我们许久的老朋友,从小学到中学无处不在。 质数,就是一个数的因子只有它自己或本身的数叫做质数。 现在我们主要来讨论它的一些秘密。质数的判定: 首先是素数的判定定理: 若从2到的数中,都没有它的约数,那么它一定是一个质数,不用解释应该就能明白,n=a*b(a<=b),则a最大为。 代码如下:...原创 2019-03-04 14:13:39 · 2533 阅读 · 0 评论