实用算法实践-第 30 篇 组合数学

本文探讨了Catalan数在PKU JudgeOnline问题1095中的应用,以及Fibonacci数列的性质和递归求解方法,特别是关于Fibonacci数列模k的循环节长度问题。通过实例和分析,展示了如何使用Pólya计数定理解决不同着色方案的计算问题,并提供了相关问题的程序实现。
摘要由CSDN通过智能技术生成

30.1    Ctalan数

PKU JudgeOnline, 1095, Trees Made to Order.

30.2    Fibonacci数

Fibonacci数列的定义如下:

f(n) = f(n - 1) + f(n - 2) (n >= 3)

f(1) = 1, f(2) = 2

f(0)可定义为1。

用归纳法可以证明性质:

f(n + m) = f(m - 1)f(n + 1) + f(m - 2)f(n)  (m>= 2)

利用这条性质,我们可以将比较大的n的Fibonacci数转化成比较小的Fibonacci数,从而使计算起来更为方便。

这里有一个问题:

Fibonacii数列 Fn (mod k) 的循环节长度是多少?有没有关于k的通项公式或者计算方法?

30.2.1   实例

PKU JudgeOnline, 3070, Fibonacci.

30.2.2   问题描述

给定n,要求第n个Fibonacci数mod 10000的结果。

30.2.3   输入

0

9

999999999

1000000000

-1

30.2.4   输出

0

34

626

6875

30.2.5   分析

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值