设 \((i,j)=gcd(i,j)\)

\[f_{i}=f_{i-1}+f_{i-2}
\]
\[f_{i}=f_{i-2}\times f_{1}+f_{i-1}\times f_{2}
\]
\[f_{i}=f_{i-1}\times f_{2}+f_{i-2}\times f_{1}
\]
\[f_{i}=(f_{i-3}+f_{i-2})\times f_{2}+f_{i-2}\times f_{1}
\]
\[f_{i}=f_{i-3}\times f_{2}+f_{i-2}\times f_{3}
\]
\[f_{i}=f_{i-k}\times f_{k-1}+F_{i-k+1}\times f_{k}
\]
\[f_{n+m}=f_{n-1}\times f_{m}+f_{n}\times f_{m+1}
\]
\[(f_{1},f_{2})=(f_{2},f_{3})=(f_{i},f_{i-1})=(f_{i}-f_{i-1},f_{i-1})=(f_{i-2},f_{i-1})=1
\]
\[f_{(i,j)}=(f_{i},f_{j})\rightarrow f_{j}\mid f_{i}=j\mid i
\]

因为 \(f_{2}=1\),则 \(f_{2}\mid 2x+1(x\in Z)\),但 \(2\nmid 2x+1 (x\in Z)\),故上述式子存在特例,且该特例唯一.

设 \(tot(i)\) 是 \(i\) 的约数的个数,将 \(i\) 用唯一分解定理分解为

\[i=\prod\limits_{i}p_{i}^{c_{i}}
\]

则有

\[tot(i)=\prod(c_{i}+1)
\]

那么

\[tot(i\times j)=\prod\limits_{i}p_{i}^{c_{i}}\times \prod\limits_{j}p_{j}^{c_{j}}=tot(i)\times tot(j)
\]

即 \(tot(x)\) 为 积性函数.

若质数 \(p\mid i\),则 \(min_{j}[j\mid (i\times p)]=p\),且 \(c_{p_{i}}=2\)

若质数 \(p\) 是 \(i\times p\) 的最小因子,不妨设

\[i=p^{c_{p}}\times\prod\limits_{i}p_{i}^{c_{p_{i}}}
\]
\[tot(i)=c_{p}\times \prod\limits_{i}c_{p_{i}}
\]

\[i\times p=p^{c_{p}+1}\times\prod\limits_{i}p_{i}^{c_{p_{i}}}
\]
\[tot(i\times p)=(c_{p}+1)\times \prod\limits_{i}c_{p_{i}}
\]

\[tot(i\times p)=\frac{tot(i)}{c_{p}}\times (c_{p}+1)
\]

所以我们引入 \(mintimes(i)\) 表示 \(i\) 的最小约数的 \(c_{i}\).

上述式子可以表示成

\[tot(i\times p)=\frac{tot(i)}{mintimes(i)}\times (mintimes(i)+1)
\]

上述推论对全部 \(p\in p_{i}\) 均成立

设 \(sqrtot(i)\) 为 \(i\) 的约数的平方和,与 \(tot(i)\) 类似,可得

\[sqrtot(x)=\prod_{i}\ \sum_{j=0}^{c_{i}}(p_{i}^{j})^{2}
\]
\[sqrtot(i\times j)=\prod_{i}\ \sum_{j=0}^{c_{i}}(p_{i}^{j})^{2}\times \prod_{i'}\ \sum_{j'=0}^{c_{i'}}(p_{i'}^{j'})^{2}=sqrtot(i)\times sqrtot(j)
\]

所以 \(sqrtot(x)\) 也为积性函数

同理,不妨设

\[p_{sum}=\sum_{j=0}^{c_{p_{i}}}(p^{j})^{2}
\]
\[sqrtot(i)=p_{sum}\times \prod_{i}\ \sum_{j=0}^{c_{i}}(p_{i}^{j})^{2}
\]

\[sqrtot(i\times p)=(p^{2}\times p_{sum}+1)\times \prod_{i}\ \sum_{j=0}^{c_{i}}(p_{i}^{j})^{2}
\]

维护 \(expmin(i)=p_{sum}\) 即可.

[C103] 斐波那契数列的更多相关文章

  1. C#求斐波那契数列第30项的值(递归和非递归)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. 斐波拉契数列加强版——时间复杂度O(1),空间复杂度O(1)

    对于斐波拉契经典问题,我们都非常熟悉,通过递推公式F(n) = F(n - ) + F(n - ),我们可以在线性时间内求出第n项F(n),现在考虑斐波拉契的加强版,我们要求的项数n的范围为int范围 ...

  3. js中的斐波那契数列法

    //斐波那契数列:1,2,3,5,8,13…… //从第3个起的第n个等于前两个之和 //解法1: var n1 = 1,n2 = 2; for(var i=3;i<101;i++){ var ...

  4. 剑指Offer面试题:8.斐波那契数列

    一.题目:斐波那契数列 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: 二.效率很低的解法 很多C/C++/C#/Java语言教科书在讲述递归函数的时 ...

  5. 算法: 斐波那契数列C/C++实现

    斐波那契数列: 1,1,2,3,5,8,13,21,34,....     //求斐波那契数列第n项的值 //1,1,2,3,5,8,13,21,34... //1.递归: //缺点:当n过大时,递归 ...

  6. 洛谷P1962 斐波那契数列 || P1349 广义斐波那契数列[矩阵乘法]

    P1962 斐波那契数列 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数 ...

  7. Python递归及斐波那契数列

    递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可 ...

  8. 简单Java算法程序实现!斐波那契数列函数~

    java编程基础--斐波那契数列 问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:可能出现的情况:(1) n=1 ,一种方法 ;(2)n=2 ...

  9. js 斐波那契数列(兔子问题)

    对于JS初学者来说,斐波那契数列一直是个头疼的问题,总是理不清思路. 希望看完这篇文章之后会对你有帮助. 什么是斐波那契数列 : 答: 斐波那契数列,又称黄金分割数列.因数学家列昂纳多·斐波那契(Le ...

  10. 剑指offer三: 斐波拉契数列

    斐波拉契数列是指这样一个数列: F(1)=1; F(2)=1; F(n)=F(n-1)+F(n); public class Solution { public int Fibonacci(int n ...

随机推荐

  1. NIO操作文件读写

    第一章 第一节,Buffuer 案例一  从buffur 读出数据, 创建了一个 FileInputStream 对象,并通过调用 getChannel() 方法获取了与之关联的 FileChanne ...

  2. docker 容器卷

    创建各种卷 [root@docker ~]# docker volume create mqy-vo101 mqy-vo101 [root@docker ~]# docker inspect mqy- ...

  3. Known框架实战演练——进销存财务管理

    本文介绍如何实现进销存管理系统的财务对账模块,财务对账模块包括供应商对账和客户对账2个菜单页面.供应商和客户对账字段相同,因此可共用一个页面组件类. 项目代码:JxcLite 开源地址: https: ...

  4. 2024-07-31:用go语言,给定两个正整数数组arr1和arr2,我们要找到属于arr1的整数x和属于arr2的整数y组成的所有数对(x, y)中,具有最长公共前缀的长度。 公共前缀是指两个数的

    2024-07-31:用go语言,给定两个正整数数组arr1和arr2,我们要找到属于arr1的整数x和属于arr2的整数y组成的所有数对(x, y)中,具有最长公共前缀的长度. 公共前缀是指两个数的 ...

  5. 【ElasticSearch】突破深度分页限制的分页方案

    一.场景需求 最近在忙一个新的项目,数据源是ES,但是功能就是对文档进行翻页查询 ES提供了分页查询,就是from + size深度查找,但是使用有限制,只能在1万条内 我和同事的意见是1万条之后的数 ...

  6. 【Git】Git拉取失败,报错超出内存,内存分配失败

    报错信息: Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\Administr ...

  7. 【MongoDB】Re04 副本集 ReplicationSet

    MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务. 副本集可提供冗余和高 可用性,是所有生产部署的基础. 也可以说,副本集类似于有自动故障恢复功能的主从集群.通 ...

  8. 人形机器人(humanoid)(双足机器人、四足机器人) —— 硬件测试的方法

    硬件测试的方法: 硬件的稳定性.鲁棒性.为机器人设定好固有的执行策略,然后长时间的让机器人重复执行这些既定好的动作.该种测试方法主要测试硬件的设计是否合理,硬件在长时间的运行中是否可以稳定运行而不是出 ...

  9. 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十二章

    图  12.1 import matplotlib.pyplot as plt import numpy as np barSlices=12 theta=np.linspace(0.0, 2*np. ...

  10. OpenAI内讧更多细节曝光:奥特曼离间董事会失败

    参考: https://www.thepaper.cn/newsDetail_forward_25512687 ============================== 根据 https://ww ...