z等于根号3减i的指形数为?

编者:李昕烨、刘子闻、庄德楷

资料来源:网络、集训课程

//下面这个gcd函数在正int型内完全通用,返回a,b的最大公因数。
//但是当a,b之间差距较大时(如100000倍)会导致错误(栈过深)

法2:辗转相除法(欧几里得算法)

直接在法1改进,效率倍增

\(a,b\)进行素因子分解:

注意:\(r_1,s_2\)等代表质因子需要乘的次数

来自lzw的博客——质因数与质因数分解

...//最朴素的做法 }//不停相减,这个挺慢的 }//从减改为模,快多了 }//计算需要相减多少次的算法

(实际上此时y大小不影响代码实现)

所以得到了递归结束后\(x\)\(y\)的表达式

但是我们不满足求这一组解

在此时,我们可以求出x,y最小非负整数解

//最大整数解可以通过代入求出

当然,我们看到上面的求证过程中一直没有出现用到

由此我们知道了任意整数解的求法,那\(ax+by=c\)的特解怎么求呢?

这里给出了一般性的做法,但为了编写代码方便

我们便求得了\(ax+by=c\)的一组特解。

这里给出p5656的代码

来自lzw的博客——扩展欧几里得

//2 紫书上的,更短更好背,也更容易让人迷糊

在不仅能求\(a,b\)的最大公约数\(r\),还要求出\(ax+by=r\)的一组\((x,y)\)整数解,那么我们就要用到拓展欧几里得算法。

使用迭代的方法,在辗转相除的过程中计算出\((x,y)\)

用途:(A)求解不定方程(B)求解模的逆元(C)求解同余方程

然后再把这个式子递归下去,因为我们知道递归下去肯定会出现\(b=0\)的情况,此时我 们是可以求出\(x’\)\(y’\)的,之后再不断代回去,就能够求出一组解了。

不能理解也没关系,代码会背就好了!

//2 紫书上的,更短更好背,也更容易让人迷糊

为了求出更多的解,我们有:

这个式子除以\(d\)得到:

求出\(x\)作为最小正整数的解

更一般的问题:裴蜀定理

有关伯特兰—切比雪夫定理

\(n\)个人,其中第\(i\)个人的衣服上有一个数\(i+1\),小X发现了一个规律:当一个衣服上的数为 \(i\) 的人在某一天知道了一条信息,他会在第二天把这条信息告诉衣服上的数为 \(j\)的人,其中$ \gcd(i,j)=1$(即 \(i,j\)的最大公约数为 \(1\))。在第 0 天,小 X 把一条小道消息告诉了第 \(k\) 个人,小 X想知道第几天时所有人都会知道这条小道消息。
可以证明,一定存在所有人都知道了这条小道消息的那一天。
提示:你可能需要用到的定理——伯特兰-切比雪夫定理。

    如果到\(n+1\)为止没有\(k+1\)的倍数时,显然答案为1
    如果有倍数的话,答案就是2,感性理解很显然,证明也不难,\(2(k+1)\)一定与\(2(k+1)-1\)互质
  1. \(k+1\)不是质数的时候
    由那个奇怪的定理可知,一定存在一个质数\(p\)\(\dfrac{n}{2}\)\(n\)之间,显然\(k+1\)不可能是\(p\)的倍 数(\(2p>n\)),因此第一步先拿到p,然后 再由p传播到所有人

根据模运算的定义,在方程左侧添加一个\(by\)不会对结果造成影响,其实质就等价于\(ax+by=c\)的不定方程,利用exgcd求解便可。

转换成移项可得\(ax+by=1\)(保证y是负数)

(注意:线性方程的唯一解是一组解)

它也是求解逆元的方法。。

乘法逆元,一般用于求 \(\dfrac{a}{b} \pmod p\) 的值(\(p\)通常为质数),是解决模意义下分数数值的必要手段

这个方法十分容易理解,而且对于单个查找效率似乎也还不错(尤其对于$ \bmod {p} $比较大的时候)。

而且这个做法还有个好处在于,当$ a \bot p$(互质),但 \(p\) 不是质数的时候也可以使用。

只适用于模数为质数的情况

这个我们就可以发现它这个式子右边刚好为 1 。

所以我们就可以放入原式,就可以得到:

所以我们可以用快速幂来算出 \(a^{p-2} \pmod p\)的值,这个数就是它的逆元了

只适用于模数为质数的情况

用于求一连串数字对于一个\(\bmod p\)的逆元。

只能用这种方法,别的算法都比这些要求一串要慢。

再将这个式子放到\(\pmod p\)意义下就会得到:

于是,我们就可以从前面推出当前的逆元了。

只适用于模数为质数的情况

再用费马小定理 求得\(f(n)\)的值

来自lzw的博客——有关逆元

探讨除法的取模。一种想法是将除法变成乘法,为此我们发明了逆元。

我懒啊我不想exgcd怎么办

例题 LGP3811 【模板】乘法逆元

我们需要一种线性求逆元的方式。

当你的答案是一个分数,而出题人不想用\(\operatorname{spj}\)的时候往往让你对分数取模。
所以逆元是作为一个工具存在的。

有二进制非递归和基本递归两种做法,代码呈现的是二进制非递归

2^0)\%p\),那么我们在计算的时候就把b看成二进制,如果二进制最后一位是1,就说明这一位应该乘\(a\)取余,为零说明这一位不用乘\(a\),从低位开始不断将\(b\)的二进制式右移,同时将\(a\)乘以2,等同于把基数平方,原因见上式。

可以发现两者非常的相似,差别在于结果变量的初值和计算中加号和乘号的区别。
大数乘法取模运算(二进制),

// 因为从 2 到 i - 1 的倍数我们之前筛过了,这里直接从 i // 的倍数开始,提高了运行速度

代码中,外层枚举 \(i = 1 \to n\)。对于一个 \(i\) ,经过前面的腥风血雨,如果它还没有被筛掉,就加到质数数组 \(Prime[]\) 中。下一步,是用 \(i\) 来筛掉一波数。

内层从小到大枚举\(Prime[j]\)\(i×Prime[j]\) 是尝试筛掉的某个合数,其中,我们期望 \(Prime[j]\) 是这个合数的最小质因数 (这是线性复杂度的条件,下面叫做“筛条件”)。它是怎么得到保证的?

\(j\) 的循环中,有一句就做到了这一点:

(如果是它的最小质因数是更小的质数 \(Prime[t]\),那么当然 \(Prime[t]\) 更早被枚举到,当时就要break)

这说明 \(j\) 之前(用 \(i×Prime[s]\) 的方式去筛合数,使用的是最小质因数)都符合“筛条件”。

这说明,如果 \(j\) 继续递增(将以 \(i×Prime[L]\) 的方式去筛合数,没有使用最小质因数),是不符合“筛条件”的。

来自lzw的博客——有关素数筛法

如果事先已经用素数的线性筛法得到素数表了,那么有更快的方法进行质因数分解。
素数的线性筛法中国每一个合数n仅仅在i枚举到n除以n最小的素因子时被筛出,因此可以得到每一个合数最小的质因数。
对于要分解的合数n,先查表找到它最小的质因数,将其除掉,再找剩余的商种最小的质因数,依次操作,完成对n的分解。

\(N\)组测试数据,求区间\([a,b]\)上的所有质数。

//我们将这个埃氏筛法写成一个函数 //我们在程序刚开始 先调用这个函数 //把这个isprime数组处理成我们想要的样子 用来判断素数 //这就是预处理的思想 我们在开头处理这一次 //把isprime数组 里面 下标是素数的全部变成了true //后边想判断是不是素数 直接用isprime[i]是不是真就好了

输入一个数\(n\),判断他是不是素数,\(N\)组测试数据

这个时候 就体现了 预处理的重要性
我们先预处理出来 1e6以内的所有素数 这样不管你输入啥 我直接去看 是不是素数就好了
预处理 按照一般的算法 20以内的素数需要60次才能判断出来
那1e6以内 大概需要1e9次(也就是十亿次)
而用埃氏筛法需要70万次

//我们将这个埃氏筛法写成一个函数

埃氏筛法的缺陷:对于一个合数,有可能被筛多次。例如 \(30 = 2\times 15 = 3\times 10 = 5\times 6\)……那么如何确保每个合数只被筛选一次呢?我们只要用它的最小质因子来筛选即可,这便是欧拉筛法。

欧拉筛法的基本思想 :在埃氏筛法的基础上,让每个合数只被它的最小质因子筛选一次,以达到不重复的目的。

这里不是用i的倍数来消去合数,而是把 prime里面纪录的素数,升序来当做要消去合数的最小素因子。
发现i在消去合数中的作用是当做倍数的。

/*求小于等于n的素数的个数*/

适用范围:较大数的较快素性判断
因为有好的文章讲解具体原理(见参考文章),这里只是把代码的大致思路点一下,读完了文章如果还有些迷糊,可以参考以下解释
因为有通过费马小定理的伪素数的概率不是充分小,在此基础上加以改进判断。

2^r\)的形式,其中\(d\)为奇数,正向过程是\(a^n%p\)如果是1,就继续分解\(a^{\dfrac{n}{2}}%p\)\(a\)为一个与\(n\)互素的数)看是否为1,;如果是\(n-1\)就停止分解,说明至此无法判断是否为素数;如果不等于这两个值,则一定为合数。而在写代码过程是这个过程的逆向过程,先分解到底,看最后这个\(a^d%p\)是否为\(1\)\(n-1\),如果是说明已经分解到底了,也就是通过了此次素性测试。如果不是,说明在正向过程中出现了要么\(a\)的某次方为\(n-1\),根据算法停止了检测过程;要么就是中间的某一个结果不等于这两个数,那么就是合数。就从最后往前面推,每一步看满不满足上述条件。直到判断为合数或者终止检测的那一步。

不停更换\(a\)测试。
代码:(代码中可能需要用到快速幂和大数乘积取余,可以参考前面)

if(x==n-1)//考虑开始在不断地往下余的过程 return true;//中间如果有一个余数是n-1说明中断了此过程,则可能是素数 return false;//否则如果中间没有中断但最后是余数又不是n-1和1说明一定不是素数

给不超过int的\(l,r\),其中\(r-l+1 \le 10^6\),筛出其中的素数,并且求出相邻素数差值最大和最小的一对。

  1. 提示:区间内的合数的质因子一定有在50000以内的
  1. 筛出50000以内的素数,用它们来筛出[l,r]内的合数.
    怎么筛是个问题,假设我们有一素数\(p\)(并且筛完了素数\(p\)以前所有素数的倍数),我们显然希望找到第一个在区间内的素数的倍数,然后用筛法筛区间内的合数即可。

  2. 然后对第一个筛的合数不断+p直到超过\(r\), 然后这些合数全筛走,剩下的就是质数.

  3. 其余细节也有很多,很有必要一写。

中国剩余定理(孙子定理)

强提醒:完全可以用excrt求解,且excrt适用范围更广,模数可以不互质

有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?

该问题最早见于《孙子算经》中,并有该问题的具体解法。宋朝数学家秦九韶于 1247 年《数书九章》卷一、二《大衍类》对「物不知数」问题做出了完整系统的解答。上面具体问题的解答口诀由明朝数学家程大位在《算法统宗》中给出:

三人同行七十希,五树梅花廿一支,七子团圆正半月,除百零五便得知。

上面的「物不知数」问题就是一元线性同余方程组的一个实例。

  1. 计算所有模数的积 \(n\)

因为我们没有对输入的 \(a_i\) 作特殊限制,所以任何一组输入 \(\{a_i\}\) 都对应一个解 \(a\)

故系数列表 \(\{a_i\}\) 与解 \(a\) 之间是一一映射关系,方程组总是有唯一解。

下面演示 CRT 如何解「物不知数」问题。

某些计数问题或数论问题出于加长代码、增加难度、或者是一些其他不可告人的原因,给出的模数: 不是质数

但是对其质因数分解会发现它没有平方因子,也就是该模数是由一些不重复的质数相乘得到。

那么我们可以分别对这些模数进行计算,最后用 CRT 合并答案。

下面这道题就是一个不错的例子。

否则,根据 ,可知所求为:

\(4679\)\(35617\) 这几个质数下的结果,最后用中国剩余定理来合并答案。

也就是说,我们实际上要求下面一个线性方程组的解:

而计算一个组合数对较小的质数取模后的结果,可以利用 。

比较两 CRT 下整数

将数字转化到 PMR 下,逐位比较即可

转化方法考虑依次对 PMR 取模

扩展:模数不互质的情况

其他情况下,可以通过扩展欧几里得算法解出来一组可行解 \((p, q)\)

用上面的方法两两合并就可以了……

给定\(n\)组非负整数\(a_i,b_i\),求解关于\(x\)的方程组的最小非负整数解。

让我们来改变一下格式:

把(1)(2)相减得:

然后我们可以解出一个最小正整数解\(y_1\),带入(1)得到\(x\)其中一个解:

由于我们知道,\(y_1\)的全解,

看过代码之后,我们再考虑具体的编程问题。

假设已经求出前\(k-1\)个方程组成的同余方程组的一个解为\(x\)

(代码实现中用的就是\(M=LCM_{i-1}^{k-1}m_i\),显然易证这样是对的,还更能防止溢出)

那么对于加入第\(k\)个方程后的方程组

对于这个式子我们已经可以通过扩展欧几里得求解t

若该同余式无解,则整个方程组无解, 若有,则前k个同余式组成的方程组的一个解解为\(x_k=x+t*M\)

所以整个算法的思路就是求解k次扩展欧几里得

取模铭记“能取就取”!

\(\phi (n)\)指不超过n并且与n互素的正整数的个数。

应用:利用欧拉函数求不超过n且与n互素的正整数的个数,其次可以利用欧拉定理与费马小定理来求得一个逆元,欧拉定理中的m适用任何正整数,而费马小定理只能要求m是质数。

扩展欧拉定理无需 \(a,m\) 互质。

来自lzw的博客——欧拉函数

//筛选法打欧拉函数表
可以在 O(n) 的时间复杂度内求出 1~n中所有数的欧拉函数 同时也能算质数 // 输出1到100每个数的欧拉函数值

裴蜀定理,又称贝祖定理(Bézout's lemma)。是一个关于最大公约数的定理。

  1. 把辗转相除法中的运算展开,做成带余数的除法,得

    不妨令辗转相除法在除到互质的时候退出则 \(r_n=1\) 所以有( \(q\) 被换成了 \(x\) ,为了符合最终形式)

个单位。问你至少花多少元钱才能够跳到纸带上全部位置。若不行,输出 \(-1\)

分析该问题,先考虑两个数的情况,发现想要跳到每一个格子上,必须使得这些数通过数次相加或相加得出的绝对值为 \(1\) ,进而想到了裴蜀定理。

由此得出了若选择的卡牌的数通过数次相加或相减得出的绝对值为 \(1\) ,那么这些数一定互质,此时可以考虑动态规划求解。

不过可以转移思想,因为这些数互质,即为 \(0\) 号节点开始,每走一步求 \(\gcd\) (节点号,下一个节点),同时记录代价,就成为了从 \(0\) 通过不断 \(\gcd\) 最后变为 \(1\) 的最小代价。

由于:互质即为最大公因数为 \(1\)\(\gcd(0,x)=x\) 这两个定理,可以证明该算法的正确。选择优先队列优化 Dijkstra 求解。

不过还有个问题,即为需要记录是否已经买过一个卡片,开数组标记由于数据范围达到 \(10^9\) 会超出内存限制,可以想到使用 unordered_map (比普通的 map 更快地访问各个元素,迭代效率较低,详见 )

m)\)(顺序可以不同),因为只有在这种情况下才能保证集合\(a_1,a_2,a_3,a_4,...,a_m\)中的任意2个数不同余,否则必然有2个数同余。由式(1)自然得到集合\({a_1,a_2,a_3,a_4,…a_m}\)\(m\)构成完全剩余系。

从模\(n\)的每个剩余类中各取一个数,得到一个由\(n\)个数组成的集合,叫做模\(n\)的一个完全剩余系。完全剩余系常用于数论中存在性证明。

剩余系:由关于模m同余的数的集合,每一个集合叫做关于模m同余的剩余系
比如模5的一个剩余系:0,5,10,15…
完全剩余系:从模m的每个剩余系中各取一个数得到m的数,叫做模m的一个完全剩余系
比如模5的一个完全剩余系:0,1,2,3,4

从模n的每个剩余类中各取一个数,得到一个由n个数组成的集合,叫做模n的一个完全剩余系.例如,一个数除以4的余数只能是0,1,2,3,{0,1,2,3}和{4,5,-2,11}是模4的完全剩余系.可以看出0和4,1和5,2和-2,3和11模4同余,这4组数分别属于4个剩余类.

m)\)。根据完全剩余系的定义和引理4(完全剩余系中任意2个数之间不同余,易证明)可知这是不可能的,因此不存在2个整数\(ba\)\(ba[j]\)同余。由引理5可知\(ba[1],ba[2],ba[3],ba[4],…ba[m]\)构成模\(m\)的一个完全剩余系。

排列组合是组合数学中的基础。排列就是指从给定个数的元素中取出指定个数的元素进行排序;组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。排列组合与古典概率论关系密切。

在高中初等数学中,排列组合多是利用列表、枚举等方法解题。


全排列: \(n\) 个人全部来排队,队长为 \(n\) 。第一个位置可以选 \(n\) 个,第二位置可以选 \(n-1\) 个,以此类推得:

全排列是排列数的一个特殊情况。

如何理解上述公式?我们考虑 \(n\) 个人 \(m\) ( \(m \le n\) ) 个出来,不排队,不在乎顺序 \(C_n^m\) 。如果在乎排列那么就是 \(A_n^m\) ,如果不在乎那么就要除掉重复,那么重复了多少?同样选出的来的

组合数也被称为「二项式系数」,下文二项式定理将会阐述其中的联系。

在进入排列组合进阶篇之前,我们先介绍一个与组合数密切相关的定理——二项式定理。

二项式定理阐明了一个展开式的系数:

二项式定理也可以很容易扩展为多项式的形式:

来自lzw的博客——二项式定理

接下来我们介绍一些排列组合的变种。

多重集的排列数 | 多重组合数

请大家一定要区分 多重组合数多重集的组合数 !两者是完全不同的概念!

多重集的排列数 。多重集的排列数常被称作 多重组合数 。我们可以用多重组合数的符号表示上式:

这样就限制了每种元素的取的个数。同样的,我们可以把这个问题转化为带限制的线性方程求解:

于是很自然地想到了容斥原理。容斥的模型如下:

我们把错位排列问题具体化,考虑这样一个问题:

\(n\) 封不同的信,编号分别是 \(1,2,3,4,5\) ,现在要把这 5 封信放在编号 \(1,2,3,4,5\) 的信封中,要求信封的编号与信的编号不一样。问有多少种不同的放置方法?

假设我们考虑到第 \(n\) 个信封,初始时我们暂时把第 n 封信放在第 n 个信封中,然后考虑两种情况的递推:

  • 前面 \(n-1\) 个信封全部装错;
  • 前面 \(n-1\) 个信封有一个没有装错其余全部装错。

对于第一种情况,前面 \(n-1\) 个信封全部装错:因为前面 \(n-1\) 个已经全部装错了,所以第 n 封只需要与前面任一一个位置交换即可,总共有 \(f(n-1)\times (n-1)\) 种情况。

对于第二种情况,前面 \(n-1\) 个信封有一个没有装错其余全部装错:考虑这种情况的目的在于,若 \(n-1\) 个信封中如果有一个没装错,那么我们把那个没装错的与 \(n\) 交换,即可得到一个全错位排列情况。

其他情况,我们不可能通过一次操作来把它变成一个长度为 n 的错排。

\(n\) 个人全部来围成一圈,所有的排列数记为 \(\mathrm Q_n^n\) 。考虑其中已经排好的一圈,从不同位置断开,又变成不同的队列。

由此可知部分圆排列的公式:

组合数性质 | 二项式推论

由于组合数在 OI 中十分重要,因此在此介绍一些组合数的性质。

相当于将选出的集合对全集取补集,故数值不变。(对称性)

组合数的递推式(杨辉三角的公式表达)。我们可以利用这个式子,在 \(O(n^2)\) 的复杂度下推导组合数。

这是二项式定理的特殊情况。取 \(a=b=1\) 就得到上式。

二项式定理的另一种特殊情况,可取 \(a=1, b=-1\)

拆组合数的式子,在处理某些数据结构题时会用到。

带权和的一个式子,通过对 \((3)\) 对应的多项式函数求导可以得证。

与上式类似,可以通过对多项式函数求导证明。

可以通过组合意义证明,在恒等式证明中较常用。

其中 \(F\) 是斐波那契数列。

  1. \(2n\) 个人排成一行进入剧场。入场费 5 元。其中只有 \(n\) 个人有一张 5 元钞票,另外 \(n\) 人只有 10 元钞票,剧院无其它钞票,问有多少中方法使得只要有 10 元的人买票,售票处就有 5 元的钞票找零?
  2. 一位大城市的律师在她住所以北 \(n\) 个街区和以东 \(n\) 个街区处工作。每天她走 \(2n\) 个街区去上班。如果他从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
  3. 在圆上选择 \(2n\) 个点,将这些点成对连接起来使得所得到的 \(n\) 条线段不相交的方法数?
  4. 对角线不相交的情况下,将一个凸多边形区域分成三角形区域的方法数?
  5. 一个栈(无穷大)的进栈序列为 \(1,2,3, \cdots ,n\) 有多少个不同的出栈序列?
  6. \(n\) 个结点可够造多少个不同的二叉树?
  7. \(n\) 个不同的数依次进栈,求不同的出栈结果的种数?

题目大意:入栈顺序为 \(1,2,\ldots ,n\) ,求所有可能的出栈顺序的总数。

// 这里用的是常见公式2

非降路径是指只能向上或向右走的路径。

该递推式的证明可以考虑其组合意义。

我们插入一个新元素时,有两种方案:

根据加法原理,将两式相加即可得到递推式。

还是考虑组合意义来证明。

我们插入一个新元素时,有两种方案:

根据加法原理,将两式相加即可得到递推式。

上升幂与普通幂的相互转化

则可以利用下面的恒等式将上升幂转化为普通幂:

如果将普通幂转化为上升幂,则有下面的恒等式:

下降幂与普通幂的相互转化

则可以利用下面的恒等式将普通幂转化为下降幂:

如果将下降幂转化为普通幂,则有下面的恒等式:

贝尔数以埃里克·坦普尔·贝尔命名,是组合数学中的一组整数数列,开首是 ( ):

\(B_n\) 是基数为 \(n\) 的集合的划分方法的数目。集合 \(S\) 的一个划分是定义为 \(S\) 的两两不相交的非空子集的族,它们的并是 \(S\) 。例如 \(B_3 = 5\) 因为 3 个元素的集合

以此类推就得到了上面的公式。

每个贝尔数都是相应的第二类 的和。
因为第二类斯特林数是把基数为 \(n\) 的集合划分为正好 \(k\) 个非空集的方法数目。

用以下方法构造一个三角矩阵(形式类似杨辉三角形):

每行的首项是贝尔数。可以利用这个三角形来递推求出 Bell 数。

斐波那契数列拥有许多有趣的性质,这里列举出一部分简单的性质:

  1. 以斐波那契数列相邻两项作为输入会使欧几里德算法达到最坏复杂度(具体参见 )。

我们可以利用斐波那契数列为正整数编码。根据 ,任何自然数 \(n\) 可以被唯一地表示成一些斐波那契数的和:

于是我们可以用 \(d_0 d_1 d_2 \dots d_s 1\) 的编码表示一个正整数,其中 \(d_i=1\) 则表示 \(F_{i+2}\) 被使用。编码末位我们强制给它加一个 1(这样会出现两个相邻的 1),表示这一串编码结束。举几个例子:

\(n\) 编码的过程可以使用贪心算法解决:

  1. 如果 \(n\) 为正,回到步骤 1。
  2. 最后在编码末位添加一个 1,表示编码的结束位置。

解码过程同理,先删掉末位的 1,对于编码为 1 的位置 \(i\) (编码从左到右以 0 为起点),累加一个 \(F_{i+2}\) 到答案。最后的答案就是原数字。

\(n\) 个斐波那契数可以在 \(\Theta (n)\) 的时间内使用递推公式计算。但我们仍有更快速的方法计算。

解析解即公式解。我们有斐波那契数列的通项公式(Binet's Formula):

这个公式可以很容易地用归纳法证明,当然也可以通过生成函数的概念推导,或者解一个方程得到。

当然你可能发现,这个公式分子的第二项总是小于 \(1\) ,并且它以指数级的速度减小。因此我们可以把这个公式写成

这里的中括号表示取离它最近的整数。

这两个公式在计算的时侯要求极高的精确度,因此在实践中很少用到。但是请不要忽视!结合模意义下二次剩余和逆元的概念,在 OI 中使用这个公式仍是有用的。

斐波那契数列的递推可以用矩阵乘法的形式表达:

于是我们可以用矩阵乘法在 \(\Theta(\log n)\) 的时间内计算斐波那契数列。此外,前一节讲述的公式也可通过矩阵对角化的技巧来得到。

使用上面的方法我们可以得到以下等式:

于是可以通过这样的方法快速计算两个相邻的斐波那契数(常数比矩乘小)。代码如下,返回值是一个二元组 \((F_n,F_{n+1})\)

考虑模 \(p\) 意义下的斐波那契数列,可以容易地使用抽屉原理证明,该数列是有周期性的。考虑模意义下前 \(p^2+1\) 个斐波那契数对(两个相邻数配对):

\(p\) 的剩余系大小为 \(p\) ,意味着在前 \(p^2+1\) 个数对中必有两个相同的数对,于是这两个数对可以往后生成相同的斐波那契数列,那么他们就是周期性的。

事实上,我们有一个远比它要强的结论。模 \(n\) 意义下斐波那契数列的周期被称为 ( ),该数可以证明总是不超过 \(6n\) ,且只有在满足 \(n=2\times 5^k\) 的形式时才取到等号。

//秦九昭公式求多项式

某人写了\(n\)封信和\(n\)个信封,如果所有的信都装错了信封,求所有信都装错信封,共有多少种不同情况?

\(f_n\)表示\(n\)封信错排的答案为多少,思考\(f_n\)的递推式。

  1. 第1封信放在第\(k\)个信封,第\(k\)封信放在第1个信封里面。
    这样我们就确定了两个新的位置,剩下的就是\(n-2\)封信的错排问题,我们递归解决就可以了。
  2. 第1封信放在第\(k\)个信封,第\(k\)封信不放在第1个信封里面。
    此时我们可以把第\(k\)封信重新编号为第1封信,这样他就真的不能放到第1个信封里面了。此时是\(n-1\)个信封的错排问题。
    讨论之后我们发现对于每种情况,\(k\)\(n-1\)种取值,于是我们可以得出递推公式

任何一个大于\(1\)的自然数\(n\),总可以拆分成若干小于\(n\)的自然数之和,求出\(n\)的所有拆分.

给出\(n\)个相邻酒桶在坐标轴的位置,要求通过移动一些酒桶,使得每个酒桶之间的距离为\(k\)
(另外这题评测机跑的飞快,你可以认为 1s 1e8)

我们设原始位置为 \(x\),第一个啤酒摊位置为\(a\),将其排序。某一油桶\(i\)位置是\(x_i\),它移动的距离是位置与它本来应该在的位置\(a+k(i-1)\)的差值,我们可以得到:

则转化到了:数轴上存在\(c_i\)的点,寻找一个点a使得ans最小,根据定理可知,a为c的中位数时ans有最小值。

定理:给定数轴上的\(n\)个点,求一个到他们的距离之和尽量小的点。
结论是:这个点是这\(n\)个数的中位数。所以只需排序即可。严谨的证明如下:
P\),之后把这个点向左(或者向右,效果相同,假定向左)\(D\)个单位长度,则\(\text P′\)到它左边的四个点距离减少了\(4D\),到右边的两个点距离增加了\(2D\),总的来说距离减小了\(2D\)
通过这样的移动,发现在奇数个数构成的数列,满足条件的数是最中间的数,而偶数个数构成的数列是最中间两个数的平均数,得证。

圆桌周围坐了\(n\)个人,每个人有一定数量的金币,金币的总数保证是\(n\)的倍数,每个人可以向左或向右给出一些金币,使得最终每个人的金币数相等。你的任务是求出被转移了的金币的总数。

比如,\(n=4\)时,如果四个人的金币数是\(1,2,5,4\),则转移4枚金币(第3个人给第2个人2枚,第2个人和第4个人分别给第1个人1枚金币)即可达到目的。

包含多组数据。第一行是测试组数\(T\),接下来每组数据第一行为一个整数\(n\),以下\(n\)行每行为一个整数,按逆时针顺序给出每个人拥有的金币数。

对于每组数据,输出被转手金币数量的最小值,输入保证这个值不超过64位无符号整数范围。

0

如果有四个人,依次编号\(1,2,3,4\),对于1号来说,他给了4号\(x_1\)枚金币,但是2号又给了他\(x_2\)枚,我们最终得到1号最终的金币数$$y=A_1-x_1+x_2$$

同理,对于第2个人,有\(y=A_2-x_2+x_3\),我们一共得到了\(n\)个方程,很可惜,我们不能解,因为前\(n-1\)个式子能推导出第\(n\)个,所以只有\(n-1\)个式子是有用的。

注意\(|x_i-C_i|\)的几何意义是数轴上点\(x_i\)\(C_i\)的距离,问题变成了:给定数轴上的\(n\)个点,求一个到他们的距离之和尽量小的点。

结论是:这个点是这\(n\)个数的中位数。所以只需排序即可。严谨的证明如下:

在数轴上标出这\(n\)个点,假定数轴上标好了六个点,从左到右编号\(C_i(i\in \{1,2,3,4,5,6\})\),如果选定\(C_4,C_5\)之间的一点\(P\),之后把这个点向左(或者向右,效果相同,假定向左)\(D\)个单位长度,则\(P'\)到它左边的四个点距离减少了\(4D\),到右边的两个点距离增加了\(2D\),总的来说距离减小了\(2D\)

通过这样的移动,发现在奇数个数构成的数列,满足条件的数是最中间的数,而偶数个数构成的数列是最中间两个数的平均数,得证。

先将\(x\)进制的某数转换为十进制,运用:

然后再将该数转换为对应的\(y\)进制,使用相除取余法,结果存入数组倒序输出

char数组一定要在主程序之外开,要不然输出很奇怪(教训)

每次可能结果的概率乘以其结果的总和

证明:设\(X\)的多个随机变量(即能取到的数值为)\(\{{a_{i}}\}\),对应出现概率为\(p_i\),则求期望的式子是:

比如掷骰子的均值,计算方法:
【你必须亲自掷骰子,然后才能知道,比如】

而期望无需亲自操作 如:

在对多个均值求均值后,两者就无限接近了。

甲乙两人赌博,丙作为裁判,五局三胜,赢的人可以获得100元,比赛进行到第四局的时候甲胜了2局,乙胜了1局,但这时赌场遇到了查封,丙逃走。这时甲乙应该如何分配100元?(每局一定有胜负)

A胜利更多,已经拿到赛点。他显然不愿意

50%:甲赢了,拿走100元。

50%:乙赢了,继续比赛。

那如果下一局乙赢了,接下来两人又有50%的概率获胜,都可能拿走100元,还咋分?

C 学会期望的人应该这样做(吧)

假设甲最终输了,那么他是在什么概率下输的呢?

他实际上只有四分之一的概率输。

显而易见,因为每局都能分出胜负,所以他有 \(\dfrac{3}{4}\)的概率赢掉。

那么情况就简单了,我们根据他们的胜率来分钱。

已知3个红包中有一个1000元的,两个500元的。

抽取了一个后,随机打开剩下红包中的一个,里面装着500元钱。

询问:如果同意你们用手上的红包换取未打开的红包,你会换吗?

当员工选择了\(A\)红包后,就将三个红包分为两组,第一组为\(A\)红包,第二组为\(B,C\)红包。很明显1000元在第一组的概率为 \(\dfrac{1}{3}\),在第二组的概率为 \(\dfrac{2}{3}\),而面试官打开了B红包,发现B为500元红包,这里其实是帮助员工在第二组里筛选掉了一个错误答案,所以1000元在C红包的概率其实为 \(\dfrac{2}{3}\)

设一张彩票为2元,每售1000000张开奖,假设中奖号码为 342356,则每张彩票有一个对应的六位数号码,奖次如下:(中奖不叠加)

末位相等,安慰奖:奖励4元,中奖概率0.1

后两位相等,幸运奖:奖励20元,中奖概率0.01

后三位相等,手气奖:奖励200元,中奖概率0.001

后四位相等,一等奖:奖励2000元,中奖概率0.0001

后五位相等,特等奖:奖励20000元,中奖概率0.00001

我们来用简单的概率知识来计算一下,对于每一位购买彩票的用户,公司可能支出为:

也就是说,公司期望对每个人赚0.8元。

如果6位均相等,给200000元的话,公司会少赚200000元!!(可以计算一下)

抛一枚硬币,如果是反面就继续抛,问抛 出正面的期望次数。 ]

解这类方程其实需要运用极限的思想,但 是一种简单的解法是直接移项整理解出x=2 即可

这个期望dp最好的例子

\(p\):在\(x\)次独立重复事件中,该事件发生\(xp\)次;

每张彩票上有一个漂亮图案,图案一共\(n\)种,如果你集齐了这\(n\)种图案就可以兑换大奖。

现在请问,在理想(平均)情况下,你买多少张彩票才能获得大奖的?

定义\(E(i)\)表示\(i-1\)到第\(i\)张牌的期望,根据期望的线性性质可得:

模拟分数相加的过程,同分之后相加化简。

一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串。在这个串中连续的 \(X\)\(1\) 可以贡献 \(X^3\) 的分数,这\(X\)个1不能被其他连续的1所包含(也就是极长的一串1,具体见样例解释)

现在给出\(n\),以及每个操作的成功率,请你输出期望分数,输出四舍五入后保留1位小数。

我们把所有可能的 \(l\) 一起考虑,就可以得到这个式子

然后我们就成功得出了分数的期望

增加的量可以用上面类似的方法算出

由此我们就得出了全部的递推关系

其实三个量完全不用用数组存,只要改变一下转移顺序就行了

首先第一步很好转化吧,设用了\(x\)步,则花费为

现在就转换成要求上式的期望。

有了前面那题的基础现在考虑起来就简单了

维护一个线性期望\(a\),平方期望 \(f\)(都是数组)

\(a[i]\)表示找完\(i\)个数之后还需要的次数的期望

\(f[i]\)表示找完\(i\)个数之后还需要的次数平方的期望

下面就开始考虑状态转移(dp?)

买过的是i个,概率为 \(\dfrac{i}{n}\),花费就相当于记在买到i时候的账上了(从\(i\)账上查),得到花费为 \(a[i]+1\)

账上了(从\(i+1\)账上查),因为当前多买了一个,得到花费为 \(a[i+1]+1\)

这时就发现了,推着推着出现了\(i+1\),自然而然的想到了倒推

但是这个式子固然能做,是不是麻烦了点?

跟推a的时候一个思路,新的或旧的,唯一就把平方拆开就行喽

OK既然上面讲了写式子下面就说说化简的事吧~

代码中精度转换注意一下,不要丢失

【考察概率较低,感性理解】

假设你不断扔一个等概率的六面骰子,直到扔出6停止。求在骰子只出现过偶数的条件下扔骰子次数的期望。

细细的考虑一下,题目所说的并不是指出现奇数就pass再扔,而是出现奇数就终止了操作!!!

所以把条件这样转换后,就可以得到正确答案: \(\dfrac{3}{2}\)

假设你不断扔一个等概率的六面骰子,直到扔出\(1,3,5,6\)停止。求骰子最后一次是6的次数的期望。


}
  • 在数学运算中我们经常需要运算到根号(√),根号看似简单, 但要你在电脑中打出根号符号, 相信对于很多菜鸟朋友来说并不是一 件的简单的事情,虽然在网上有个最简答的方法:直接在网上搜索根 号符号,很多网页上均有直接复制即可,但要自己打出来该如何操作 呢? 根号怎么打? 其实电脑中根号怎么打方法非常多,只要了解过一次,相信今后 均能打的出来,以下为大家介绍几种常用的根号打出方法: 方法一:直接网上复制法 其实很多东西我们不知道,都可以通过网上搜索找到,根号符号 也不例外,比如我们直接在百度搜索“根号符号”,搜索结果中很多文 章都有根号符号,我们直接复制即可了。 根号怎么打 最简单网上直接搜索 可能很多朋友会说复制的不算,又不是自己打的,但很多的时候 我们追求的工作是效率,只要能最快达到目的,那么就是本事,所以 如果你掌握方法,同样是成功的。 方法二:键盘快截键法(仅适合台式电脑键盘) 左手按住换档键(Alt 键)不放,右手依次按 41420(不要按键盘 上方的,要按右边的),松开双手,根号(√)就出来了。 说明:按 178 是平方号(²) 按 179 是立方号(³) 215 是乘号(×) 247 是除号(÷ 176 是度(° 还有许多数学和 ) ) 特殊符号都可打。 方法三:借助电脑输入法的小键盘 在桌面浮动的语言栏的小键盘上点右键选数学符号,软键盘中就 有了√,直接从键盘上打出来即可。 方法四:借助办公软件 word 或者 Excel 打出根号符号 这里以 word 文件为例子, 首先打开 word 文件 (开始程序里找) , 进入 word 之后,我们点顶部菜单的“插入”之后选择对象,再选择 "Microsoft /html/2269.html 。 Word 公式编辑器里面有各种数学化学常用符号,建议大家下载使用,界面如下:

  • .页眉. 校园三行情书 中学校园里的感情一直是最纯洁甜蜜的,原来同班的帅哥小男生一直喜欢你,经常 远远的关注你。收到情书你是惊喜还是害羞呢?以下关于校园三行情书,仅供参考。 1、 今天阳光特别温柔 我就把你从心里带出来晒太阳 可为什么你刚出来心就空了呢? 2、 “也许,以后。 以后,也许。 也许以后再也没有也许。” 3、 “就现在 20 年前,您笑着,儿爬着。 20 年后,您躺着,儿哭着。 唯有现在,您能笑着。” 4、 “第一站叫两小无猜。 第二站叫相濡以沫。 下一站的名字我想听你说。” 5、 已知:我喜欢你 页脚. .页眉. 求证:你喜欢我 等着你回 6、 仍在原地为你紧握的守候 式微 待归 7、 我们原本都是孤独的根号三 是一场完美的相遇 让我们从此摆脱无休止的结局 8、 我发誓 这份爱心便当 就算不含防腐剂也永不会变质 9、 我将行走远方 日夜思量 你的模样 10、 亲爱的魔法师,你是怎么办到的? 你的睡颜,让我在夜里不能入睡 你的笑容,又让我在昼间几乎沉醉 页脚. .页眉. 11、 喜欢我不 喜欢我就帮我写作业写论文吧 谢谢你 12、 我行走于远方, 夜夜思量,你的模样, 爱,未央。 13、 蒙上眼睛 幻想着 你,在我身边 14、 我 只需要你的一个微笑 知道你幸福就够了 15、 我还没有遇见你 就已经开始想念你 无从辩驳 我爱你 16、 我会一直等你 页脚. .页眉. 直到你拥有了你想要的一切 当然,包括我 17、 为你枯坐千年 只为下个瞬间 携你一起思念 18、 为你改的状态 为你写的日志 对你的爱永不消逝 19、 爱上了你, 不完美的,完美, 断了臂的,爱神。 20、 你说你不相信天长地久 我想我也不能为你证明 于我,在爱上你那刻,时间就已经停止了 21、 如果你累了, 可以止步看夕阳。 人生的路上我陪你流浪。 页脚. .页眉. 22、 敢不敢爱 敢不敢恨 敢不敢地老天荒永不分离 23、爱很简单 想起你嘴角扬起的微笑 就会感到很幸福 24、 像空气一样无所不在的 是你延绵的生息 那么温暖地包围着我 25、 爱你 非我不能 而实不易 页脚.

  • A--泵的效率,高压离心泵为0.5-0.8,低压离心泵为0.3-0.6 B--传动机构的效率,直接连接为1,皮带连接为0.9 最好再加10%-20%的系数, 轴功率N=QHr/102e;Q-流量;H-扬程;r-液体密度;e-水泵效率 3、我有一台水泵流量176立方,扬程15米,请问我该选用多大的电机功率 公式如下:N=Q(m3/h)*H(m)/367/g(0.6~0.85)解释是: N,轴功率,单位是千瓦(kW) Q,流量,单位是立方米每小时(m3/h) H,扬程,单位是米(m) 367,是常数,是一个固定值 0.6~0.85,是水泵的效率,一般流量大的取大值,流量小的取小值; 所以:假定g=0.65(经验值,各品牌效率均不同), ;g――重力加速度,9.8m/s^2; Q――流量,m^3/s;h---扬扬程,m;η ――――水泵效率。 或 P = 9.8Qh/η (KW) 式中:Q――流量,m^3/s;h---扬扬程,m;η ――――水泵效率。 5、深井潜水泵轴功率怎么算? 轴功率是电机传到轴上的功水泵的轴功率计算公式N(KW) N=QHγg÷(3600×η) γ-水的

  • 《爱情公寓》经典语录――《孤独的根号 3》 孤独的根号 3 我害怕, 我会永远是那孤独的根号三。 三本身是一个多么美妙的数字, 我的这个三, 为何躲在那难看的根号下。 我多么希望自己是一个九, 因为九只需要一点点小小的运算, 便可摆脱这残酷的厄运。 我知道自己很难再看到我的太阳, 就像这无休无止的, 1.7321………… 我不愿我的人生如此可悲。 知道那一天, 我看到了, 另一个根号三。 如此美丽无暇, 翩翩舞动而来, 我们彼此相乘, 得到那梦寐以求的数字, 像整数一样圆满。 我们砸碎命运的枷锁, 轻轻舞动爱情的魔杖。 我们的平方根,已经解开。 我的爱,重获新生。 我无法保证能给你童话般的世界, 也无法保证自己能在一夜之间长大。 但是我保证, 你可以像公主一样永远生活在自由,幸福之中。 A three is all that's good

}

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

}

我要回帖

更多关于 e的z次方的周期是多少 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信