当前位置: 首页 > news >正文

网站后台管理系统php铲车找事做找哪些网站

网站后台管理系统php,铲车找事做找哪些网站,怎么做婚介网站,怎么在小程序里开店铺斐波那契数列相关问题详解 斐波那契数列及其相关问题是算法学习中的经典主题#xff0c;变形与应用非常广泛#xff0c;涵盖了递推关系、动态规划、组合数学、数论等多个领域。以下是斐波那契数列的相关问题及其解法的详解。 1. 经典斐波那契数列 定义 初始条件#xff1…斐波那契数列相关问题详解 斐波那契数列及其相关问题是算法学习中的经典主题变形与应用非常广泛涵盖了递推关系、动态规划、组合数学、数论等多个领域。以下是斐波那契数列的相关问题及其解法的详解。 1. 经典斐波那契数列 定义 初始条件 F ( 0 ) 0 , F ( 1 ) 1 F(0) 0, F(1) 1 F(0)0,F(1)1递推公式 F ( n ) F ( n − 1 ) F ( n − 2 ) ( n ≥ 2 ) F(n) F(n-1) F(n-2) \ (n \geq 2) F(n)F(n−1)F(n−2) (n≥2) 问题类型 求第 n n n 项的值。生成前 n n n 项。优化时间复杂度。 解法 递归解法时间复杂度 O ( 2 n ) O(2^n) O(2n)会有大量重复计算动态规划解法时间复杂度 O ( n ) O(n) O(n)空间复杂度 O ( n ) O(n) O(n) 或 O ( 1 ) O(1) O(1)矩阵快速幂解法时间复杂度 O ( log ⁡ n ) O(\log n) O(logn) 实现代码 递归解法 public class Fibonacci {public static int fibRecursive(int n) {if (n 0) return 0;if (n 1) return 1;return fibRecursive(n - 1) fibRecursive(n - 2);}public static void main(String[] args) {System.out.println(fibRecursive(10)); // 输出55} }动态规划解法 public class Fibonacci {public static int fibDP(int n) {if (n 0) return 0;if (n 1) return 1;int[] dp new int[n 1];dp[0] 0;dp[1] 1;for (int i 2; i n; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[n];}public static void main(String[] args) {System.out.println(fibDP(10)); // 输出55} }2. 斐波那契数列的模运算 问题 当 n n n 很大时直接计算斐波那契数会导致数值爆炸。引入模运算解决 F ( n ) ( F ( n − 1 ) F ( n − 2 ) ) m o d M F(n) (F(n-1) F(n-2)) \mod M F(n)(F(n−1)F(n−2))modM 解法 使用动态规划加模运算。结合矩阵快速幂和模运算。 实现代码 public class FibonacciMod {public static int fibMod(int n, int mod) {if (n 0) return 0;if (n 1) return 1;int prev1 0, prev2 1;for (int i 2; i n; i) {int temp (prev1 prev2) % mod;prev1 prev2;prev2 temp;}return prev2;}public static void main(String[] args) {System.out.println(fibMod(1000, 1000000007)); // 输出大数的模值} }3. 变形斐波那契数列 问题1三阶斐波那契数列 递推关系扩展为 F ( n ) F ( n − 1 ) F ( n − 2 ) F ( n − 3 ) F(n) F(n-1) F(n-2) F(n-3) F(n)F(n−1)F(n−2)F(n−3) 实现代码 public class Tribonacci {public static int tribonacci(int n) {if (n 0) return 0;if (n 1 || n 2) return 1;int[] dp new int[n 1];dp[0] 0;dp[1] dp[2] 1;for (int i 3; i n; i) {dp[i] dp[i - 1] dp[i - 2] dp[i - 3];}return dp[n];}public static void main(String[] args) {System.out.println(tribonacci(10)); // 输出149} }问题2带权斐波那契数列 递推关系为 F ( n ) a ⋅ F ( n − 1 ) b ⋅ F ( n − 2 ) F(n) a \cdot F(n-1) b \cdot F(n-2) F(n)a⋅F(n−1)b⋅F(n−2) 实现代码 public class WeightedFibonacci {public static int weightedFib(int n, int a, int b) {if (n 0) return 0;if (n 1) return 1;int[] dp new int[n 1];dp[0] 0;dp[1] 1;for (int i 2; i n; i) {dp[i] a * dp[i - 1] b * dp[i - 2];}return dp[n];}public static void main(String[] args) {System.out.println(weightedFib(5, 2, 1)); // 输出29} }问题3斐波那契数列求和 求斐波那契数列前 n n n 项的和 S ( n ) F ( 0 ) F ( 1 ) ⋯ F ( n ) S(n) F(0) F(1) \dots F(n) S(n)F(0)F(1)⋯F(n) 通过公式 S ( n ) F ( n 2 ) − 1 S(n) F(n2) - 1 S(n)F(n2)−1 实现代码 public class FibonacciSum {public static int fibSum(int n) {if (n 0) return 0;int a 0, b 1;int sum 1; // F(0) F(1)for (int i 2; i n; i) {int temp a b;a b;b temp;sum b;}return sum;}public static void main(String[] args) {System.out.println(fibSum(5)); // 输出12} }4. 斐波那契数列在矩阵中的应用 问题 斐波那契数列可以通过矩阵的形式来表示其递推关系可以写成 [ F ( n ) F ( n − 1 ) ] [ 1 1 1 0 ] ⋅ [ F ( n − 1 ) F ( n − 2 ) ] \begin{bmatrix}F(n) \\F(n-1)\end{bmatrix} \begin{bmatrix} 1 1 \\ 1 0 \end{bmatrix} \cdot \begin{bmatrix} F(n-1) \\ F(n-2) \end{bmatrix} [F(n)F(n−1)​][11​10​]⋅[F(n−1)F(n−2)​] 利用矩阵快速幂可以在 O ( log ⁡ n ) O(\log n) O(logn) 时间内计算第 n n n 项。 实现代码 public class FibonacciMatrix {public static int fibMatrix(int n) {if (n 0) return 0;if (n 1) return 1;int[][] F {{1, 1}, {1, 0}};power(F, n - 1);return F[0][0];}private static void power(int[][] F, int n) {if (n 0 || n 1) return;int[][] M {{1, 1}, {1, 0}};power(F, n / 2);multiply(F, F);if (n % 2 ! 0) multiply(F, M);}private static void multiply(int[][] F, int[][] M) {int x F[0][0] * M[0][0] F[0][1] * M[1][0];int y F[0][0] * M[0][1] F[0][1] * M[1][1];int z F[1][0] * M[0][0] F[1][1] * M[1][0];int w F[1][0] * M[0][1] F[1][1] * M[1][1];F[0][0] x;F[0][1] y;F[1][0] z;F[1][1] w;}public static void main(String[] args) {System.out.println(fibMatrix(10)); // 输出55} }5. 斐波那契数列相关优化问题 问题优化空间复杂度 通过滚动数组仅存储最近两项空间复杂度从 O ( n ) O(n) O(n) 降低到 O ( 1 ) O(1) O(1) public class OptimizedFibonacci {public static int fib(int n) {if (n 0) return 0;if ( n 1) return 1;int a 0, b 1;for (int i 2; i n; i) {int temp a b;a b;b temp;}return b;}public static void main(String[] args) {System.out.println(fib(10)); // 输出55} }总结 核心公式斐波那契数列通过简单的递推公式定义但其变形和扩展非常广泛。常见问题包括求第 n n n 项、斐波那契数列求和、模运算、变形数列、矩阵快速幂等。优化方向在空间复杂度和时间复杂度上可以通过动态规划、矩阵快速幂等方法进行优化。
http://www.tj-hxxt.cn/news/229499.html

相关文章:

  • 注册了域名之后怎么做网站机械类网站如何做网站优化
  • 域名及密码登录域名管理网站桦南县建设局网站
  • 网站方案设计WordPress写小说插件
  • 网站上面的水印怎么做建设造价信息网站
  • 网站网页制作电话商业网页设计
  • 网站栏目做树形结构图国外优质设计网站
  • 旅游电子商务网站的建设方式做国外网站有哪些
  • 网站怎么更改域名解析温州网站关键字优化
  • 企网站建设卖模板的网站
  • 网站电脑基础培训班中铁建设投资集团有限公司招聘网站
  • 贵阳网站设计阳光创信好吗lamp wordpress 404
  • 手工艺品网站建设wordpress 文章版权
  • 网站建设虍金手指花总企业网站建设方案书模板
  • 东莞网站建设网广宁县住房建设局网站
  • 柯林自助建站wordpress名片主题
  • 网站百度搜索情况和反链接优化建议视频素材网站怎么建
  • 公司搭建网站吉林建设公司网站
  • 网站怎么做排名嘉鱼网站建设哪家专业
  • 规划和布局营销型网站的四大重点北京网站建设新鸿微信号
  • 建一个电商网站多少钱湖南建筑一体化平台
  • 南京市建设局网站栖霞免费下载app软件下载安装到手机
  • 局域网怎么建立网站内部优化工具
  • 计算机网站建设教程php源码网站安装
  • 医院网站建设熊掌号wordpress如何设置cdn
  • 京东网站制作优点不同接入商备案网站
  • 介绍自己做衣服的网站做百度收录比较好的网站
  • 网站建设丶金手指花总12怎么0元开网店
  • 做化妆刷的外贸网站百度云虚拟主机如何建设网站
  • 通辽北京网站建设工作感悟的句子
  • 公司怎么做网站平台免费申请httq网站?