数列公式

Prufer数列

若如初见. 提交于 2020-04-08 04:43:09
0 导语 Prufer数列是无根树的一种数列。构造简单,具有很优秀的性质。Prufer数列是生成树计数的一个巧妙工具。 1 介绍 1.1 从树到Prufer数列 一棵n个有编号节点的无根树对应 唯一 的一串长度为n-2的Prufer数列。而我们可以用迭代删点的方式生成Prufer数列。 定义无向连通图 \(G=(V,E)\) , \(|V|=|E|+1\) 。我们定义叶子节点为度数为1的节点。然后按以下步骤: 找到一个节点 \(u\in V\) ,满足 \(deg_u=1\) 的最小的 \(u\) ,记下 \(u\) 和边 \((u,v)\in E\) 。 在Prufer数列中加入节点 \(v\in V\) ,在原图中删去 \(u\) 和边 \((u,v)\) 。 如果 \(|V|=2\) 则停止,否则重复1,2。 比如上图 找到5,在数列中加入2,删除5及其连边 找到6,在数列中加入2,删除6及其连边 找到7,在数列中加入3,删除7及其连边 找到2,在数列中加入1,删除2及其连边 找到3,在数列中加入1,删除3及其连边 结束,得到数列[2,2,3,1,1]。 1.2 从Prufer数列到树 ​ 一串长度为n-2的Prufer数列对应 唯一 的一棵n个有编号节点的无根树。 取出Prufer数列最前面的元素 \(u\) ,删除 \(u\) 。 在点集 \(V\)

箭型行列式通项求解

拥有回忆 提交于 2020-03-02 16:49:52
我们把诸如下图形式的行列式称为箭型行列式。箭型行列式的特点是第一行和第一列均为1,而主对角线上的元素依次是递增的自然数。 对于箭型行列式的求解,我们给出递推数列的方法。 我们对行列式按第n行展开可以得到: 再次按第n列展开可以得到: 这时我们令 可以得到数列的递推公式如下: 根据数列一阶线性方程的公式: 代入初始值即可得到最终我们需要的通项公式 来源: CSDN 作者: 璇璇的宇宇 链接: https://blog.csdn.net/qq_30356779/article/details/104611101

在线|二轮辅导[10][求数列的通项公式02]

无人久伴 提交于 2020-02-24 21:35:28
百度地址 高三文科数学第十次录制视频链接:待录制; 使用方法:下载观看,能保证高清清晰度,针对百度网盘限速,请使用 PanDownload 软件下载,该软件的下载地址: https://www.lanzous.com/i8ua9na ; 思维导图 数列专题 ; 典例剖析 [微专题03]:累加法 累加法 ; [微专题04]:累乘法 累乘法 ; [微专题05]:构造法求数列的通项公式 构造法求数列通项公式 ; 来源: https://www.cnblogs.com/wanghai0666/p/12340255.html

第二章 算法时间复杂度

做~自己de王妃 提交于 2020-02-19 23:23:36
一、主定理 1、 主要是计算 n_log_b_a 。求出来之后和后面的Fn进行比较,然后按照规则些出结果就行。 2、一句话解释:这两个值哪一个大就取谁;想等的话先看Fn里面log的次数,最终的结果在log的基础之上+1就是最终结果log的次数。例题如右下角 3、要注意的一点就是:保证T(n)的形式要和定理里面的一样,一个大问题拆解成为几个相等的小问题。 1、例题如上。 2、N!是阶数最高的,属于NP难问题。复杂度是最大的。 3、n的n次方乘以log n。 Fib数列递推公式的证明(斐波那契数列) 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、…… 斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2) 显然这是一个线性递推数列。 先回顾一下常微分方程:fib数列。假设y=e的lλx次方,解出y。

顺序表练习(四):上三角矩阵的压缩存储公式推导以及代码实现

孤者浪人 提交于 2020-01-23 05:50:19
前言 本篇博客会较为详细地讲一下我个人对三角矩阵压缩存储公式的理解,希望能给后面的朋友们带来一些帮助。 等差数列的求和公式 由于三角矩阵的压缩存储公式是依靠求和公式来推导的,所以得先补一下等差数列的求和公式。 求和公式一: 其中n是整个数列的项数, 是数列的首项,d是数列的公差(递增数列公差为正数,递减数列公差为负数)。 求和公式二: 其中n为整个数列的项数, 是数列的首项, 是数列的末项。下面主要用到这个公式二。 上三角矩阵压缩储存公式的推导 首先我们知道,压缩储存上三角矩阵,本质上就是将矩阵的上三角块的元素“展开”成一条长的数列存在数组里。问题就在于,我们 如何根据原矩阵里元素的行号和列号得到压缩后数组里对应的下标? 我们可以这样考虑: 对于一个上三角块里第i行第j列的元素 ,它在数组里的下标就等于(在原矩阵中)他前面i-1行的元素数量 + (原矩阵中)他所在行的他前面的元素数量 ,以下面这个矩阵为例, 在数组里的位置就应该是它前面两行元素的数量5+4=9,再加上 所在行它前面的元素数量1(即是 ),最终结果10即是 在数组中的位置(当然,转换成物理下标的话还需要-1)。 那么问题又来了, 我们如何才能知道前面1到i-1行的元素数量? 这个时候就要用到我们的等差数列求和公式了,我们可以从上到下地将每行的 元素数量 看成一个数列,对于上图的矩阵来说,这个数列就是5 4 3 2 1

【php】神奇的斐波那锲数列(递归 + 非递归)实现

六眼飞鱼酱① 提交于 2019-12-31 13:18:14
一、小知识(概念 + 趣味故事) 1、斐波那契数列: 1 1 2 3 5 8 13 21 34 55 … 概念: 前两个值都为1,该数列从第三位开始,每一位都是当前位前两位的和 规律公式为: Fn = F(n-1) + F(n+1) F:指当前这个数列 n:指数列的下标 2、永生的兔子 斐波纳契早年思考一个关于兔子繁殖的数学问题:从一只雄兔和一只雌兔开始,一年能生多少对兔子?该问题假设了以下条件:从一只刚出生的公兔和母兔开始。兔子在一个月后达到性成熟。兔子的妊娠期是一个月。雌性兔子性成熟后,每月生育一次。一只母兔子生了一只公兔子和一只母兔子。兔子不会死。如下图所示: 二、源代码(递归 + 非递归)实现 <?php function test() { $x = 39; //自增量 可变 $star_time = time(); //斐波那锲数列 递归调用 $arr = []; for ($i=1; $i<=$x; $i++) { $arr[] = f_digui($i); } //非递归方式生成 $arr2 = fbnq($x); $end_time = time(); echo "<pre>"; print_r($arr); echo "<pre>"; print_r($arr2); echo "<pre>"; print_r($star_time - $end_time)

著名数列及其算法(斐波拉契)

自作多情 提交于 2019-12-11 23:15:47
1、斐波那契数列 2、帕多瓦数列 3、卡特兰数 4、Look-and-say 数列 5.递推数列 – – 1、斐波那契数列 斐波那契数列,又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,提出时间为1202年。 指的是这样一个数列:1、1、2、3、5、8、13、21、34、…;在数学上, 斐波那契数列以如下被以递归的方法定义: F(1)=1, F(2)=1, F(n)=F(n-1)+F(n-2) (n>2,n∈N*)。 方法一:递归方法 function f(n) { if ( n 1 || n 2 ){ return 1; }else{ return f(n-1) + f(n-2); } } console.log(f(6)); 方法二:动态规划方法(性能得到优化) function fibonacci(n) { let n1 = 1, n2 = 1, sum = 1; for(let i = 3; i <= n; i += 1) { sum = n1 + n2; n1 = n2; //往后移动一位数 n2 = sum } return sum } console.log(fibonacci(5)); 2、帕多瓦数列 帕多瓦数列是由帕多瓦总结而出的。 它和斐波拉契数列非常相似,稍有不同的是:每个数都是跳过它前面的那个数

斐波那契数列

浪子不回头ぞ 提交于 2019-12-04 05:42:36
斐波那契数列定义 若一个数列,前两项等于1,而从第三项起,每一项是其前两项之和,则称该数列为斐波那契数列。且这个数列中的数,如1,2,3,5,8,13,21,34,55等都被称为斐波那契数。 斐波那契数列递归公式 F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 经测试发现 无法在一分钟内写出fib(100),fib(1000),fib(10000)! 可写出fib(10)= 55 py.代码如下 def fib(n): if n == 1 or n == 2: return 1 return fib(n - 1) + fib(n - 2) i = input("请输入一个整数:") i = int(i) print(fib(i)) 来源: https://www.cnblogs.com/lhpshuaibi/p/11833718.html

HNOI 2009 有趣的数列

冷暖自知 提交于 2019-12-01 10:13:32
洛谷 P3200 [HNOI2009]有趣的数列 洛谷传送门 JDOJ 2130: [HNOI2009]有趣的数列 D1 T3 JDOJ传送门 Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: ​ (1)它是从1到2n共2n个整数的一个排列{ai}; ​ (2)所有的奇数项满足a1<a3<…<a2n-1,所有的偶数项满足a2<a4<…<a2n; ​ (3)任意相邻的两项a2i-1与a2i(1≤i≤n)满足奇数项小于偶数项,即:a2i-1<a2i。 ​ 现在的任务是:对于给定的n,请求出有多少个不同的长度为2n的有趣的数列。因为最后的答案可能很大,所以只要求输出答案 mod P的值。 Input 输入文件只包含用空格隔开的两个整数n和P。输入数据保证,50%的数据满足n≤1000,100%的数据满足n≤1000000且P≤1000000000。 Output 仅含一个整数,表示不同的长度为2n的有趣的数列个数mod P的值。 Sample Input 3 10 Sample Output 5 HINT 对应的5个有趣的数列分别为 (1,2,3,4,5,6), (1,2,3,5,4,6), (1,3,2,4,5,6), (1,3,2,5,4,6), (1,4,2,5,3,6)。 Source HNOI2009 最优解声明 题解:

生成函数求解一般递推数列通项公式

微笑、不失礼 提交于 2019-12-01 08:59:24
目录 写在前面 范例 - 对斐波那契通项公式的推导 对一般递推数列通项公式的推导 写在前面 本文解出的通项公式十有八九与使用特征根方程接触的在形式上不同,但是其正确性可以保证。 如有强迫症请自行化简。 范例 - 对斐波那契通项公式的推导 设生成函数 \[ A=1+x+2x^2+3x^3+5x^4+... \] 不难发现, \(i-1\) 项系数即为斐波那契数列第 \(i\) 项的值。 由于斐波那契数列递推式为 \[ F(i)=F(i-1)+F(i-2) \] 我们得到另外两个生成函数 \[ xA=x+x^2+2x^3+3x^4+5x^5...\\ x^2A=x^2+x^3+2x^4+3x^5+5x^6... \] 显然有 \[ A=xA+x^2A+1 \] 所以 \[ A=\frac{1}{1-x-x^2} \] 由于我们不知道二次形式如何化简,所以考虑转换为两个一次形式,即 \[ A=\frac{a}{1-\frac{1+\sqrt{5}}{2}x}+\frac{b}{1-\frac{1-\sqrt{5}}{2}x} \] 联立解得 \[ a=\frac{5+\sqrt{5}}{10}\\ b=\frac{5-\sqrt{5}}{10} \] 因为 \[ \frac{1}{1-kx}=1+kx+k^2x^2+... \] 所以得到 \[ A=\frac{5+\sqrt{5}}