首页 > 其他分享 >二十七 205. 斐波那契 (矩阵乘法|快速幂)

二十七 205. 斐波那契 (矩阵乘法|快速幂)

时间:2024-04-06 18:12:57浏览次数:20  
标签:205 int 矩阵 private 斐波 static mul 那契

205. 斐波那契 (矩阵乘法|快速幂)
image

对矩阵和矩阵快速幂的讲解

import java.util.*;

public class Main {
    private static final int mod = 10000;
    
    private static int[][] mul(int[][] a, int[][] b) {
        int[][] c = {{0, 0}, {0, 0}};
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                for (int k = 0; k < 2; k++) {
                    c[i][j] = (c[i][j] + a[i][k] * b[k][j]) % mod;
                }
            }
        }
        return c;
    }
    
    private static int fib(int n) {
        int[][] a= {{0, 1}, {0, 0}};
        int[][] f= {{0, 1}, {1, 1}};
        while (n != 0) {
            if ((n & 1) != 0) {
                a = mul(a, f);
            }
            f = mul(f, f);
            n >>= 1;
        }
        return a[0][0];
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while (n != -1) {
            System.out.println(fib(n));
            n = sc.nextInt();
        }
    }
}

标签:205,int,矩阵,private,斐波,static,mul,那契
From: https://www.cnblogs.com/he0707/p/18117701/lanqiaobei27

相关文章

  • Java斐波那契查找知识点(含面试大厂题和源码)
    斐波那契查找(FibonacciSearch)是一种在有序数组中查找元素的高效算法,它基于斐波那契数列的性质。斐波那契查找是二分查找的一种改进,通过使用斐波那契数列来确定搜索范围,可以在某些情况下减少比较次数,特别是在数组较大时表现更为出色。以下是斐波那契查找的一些关键知识点:......
  • 代码随想录算法训练营第38天|理论基础|509. 斐波那契数 |70. 爬楼梯 |746. 使用最小花
    代码随想录算法训练营第38天|理论基础|509.斐波那契数|70.爬楼梯|746.使用最小花费爬楼梯详细布置今天正式开始动态规划!理论基础无论大家之前对动态规划学到什么程度,一定要先看我讲的动态规划理论基础。如果没做过动态规划的题目,看我讲的理论基础,会有感觉是不......
  • c语言:用do-while输出前40项的斐波那契数值
    求Fibonacci数列的前40个元素。该数列的特点是第1、2两个数为1、1。从第3个数开始,每数是其前两个数之和。  分析:从题意可以用如下等式来表示斐波那契数列:     1,1,2,3,5,8,13,21…     f1=1     (n=1)     f2=1   ......
  • 以下是一个简单的C++程序,用于生成斐波那契数列的前n项
    斐波那契数列是一个在自然界中广泛出现的数列,其定义是:第一个和第二个数都是1,从第三个数开始,每一个数都是前两个数之和。斐波那契数列的前几项是:1,1,2,3,5,8,13,21,34,55,…以下是一个简单的C++程序,用于生成斐波那契数列的前n项:#include<iostream>#include<ve......
  • 替代 Evernote!离线优先、数据安全的个人笔记 | 开源日报 No.205
    laurent22/joplinStars:40.4kLicense:NOASSERTIONjoplin是一个安全的笔记和待办事项应用程序,具有Windows、macOS、Linux、Android和iOS的同步功能。可以处理大量笔记,可以组织成笔记本笔记可搜索,并且支持标签和Markdown格式支持从Evernote导入格式化内容和......
  • 【LeetCode 509 】斐波那契数
    题目描述原题链接:LeetCode.0509斐波那契数解题思路题目直接给出了公式,朴素解法可以直接用\(O(n)\)复杂度求出答案,可以看做是递归或动态规划的入门题;这里重点作为模板题来介绍矩阵快速幂技巧,讲一下\(O(log_2n)\)复杂度的解法:递推公式\(F(n)=F(n-1)+F(n-2)\),转换为矩......
  • 简单对比Java、Python、Go、Rust等常见语言计算斐波拉契数的性能
    前言最近简单学了下Rust,以我这种菜鸟水平,没感受到什么安全、性能什么方面的优势,只觉得概念太多,编译各种报错。暂时也写不出来什么玩法,索性对比下各种学过的语言的性能。部分语言很早之前学过,很久不用就忘了,所以是用GPT写的。但运行逻辑很简单,所以应该没什么影响。具体的代码可以......
  • (斐波那契数列),假如兔子都不死,问到第12个月时一共有多少只兔子 //(有一对兔子,从出生后第
    //斐波那契数列,计算兔子的数量:11235813......从第三个数开始,//后一个数都是前两个数的和,假如兔子都不死,问到第12个月时一共有多少只兔子//(有一对兔子,从出生后第三个月开始,每一个月生一对兔子,小兔子同理)publicclassRabitDemo1{//斐波那契数列,计算兔子的数量:1......
  • HDU 2056:Rectangles(两个矩形交点的性质)
    一、原题链接Problem-2056(hdu.edu.cn)二、题面Giventworectanglesandthecoordinatesoftwopointsonthediagonalsofeachrectangle,youhavetocalculatetheareaoftheintersectedpartoftworectangles.itssidesareparalleltoOXandOY.三、......
  • 5V转3.3V/2.5V芯片PW2059:低功耗设计,外围电路简洁,电源转换更高效
    在当今日益发展的便携式设备市场中,高效稳定的电源供应已成为消费者和制造商共同关注的焦点。为了满足这一需求,PW2059降压转换器应运而生,以其出色的性能和广泛的应用领域,成为了市场的热门选择。一、产品描述PW2059是一款恒频、电流模式降压转换器,它集成了主开关和同步整流器,无需......