(转)Fibonacci Tilings

Fibonacci
numbers
 {Fn, n ≥ 0} satisfy the
recurrence relation

(1)

Fn+2 =
Fn+1 + Fn,

along
with the initial conditions F1 = 1 and
F0 = 0.

The
Fibonacci name has been attached to the sequence 0, 1, 1, 2, 3, 5, ... due to
the inclusion in his 1202 book Liber
Abaci
 of a rabbit reproduction puzzle: under certain
constraints the rabbit population at discrete times is given exactly by that
sequence. As naturally, the sequence is simulated by counting the tilings with
dominoes of a 2×n board:

A
tiling of a 2×n board may end with two horizontal dominoes or a single vertical
domino:

In
the former case, it‘s an extension of a tiling of a 2×(n-2) board; in the latter
case, it‘s an extension of a tiling of a 2×(n-1). If
Tn denotes the number of domino tilings of a 2×n
board, then clearly

Tn =
Tn-2 + Tn-1

which is the same recurrence relation that is satisfied
by the Fibonacci sequence. By a direct verification,
T1 = 1, T2 = 2,
T3 = 3, T4 = 5, etc.,
which shows that {Tn} is nothing but a shifted Fibonacci sequence. If
we define, T0 =
1, as there is only 1 way to do nothing;
and T-1 =
0, because there are no boards with negative side
lengths, then Fn =
Tn-1, for n ≥ 0.

The domino tilings
are extensively used in Graham,
Knuth, Patashnik
 and
by ZeitzBenjamin
& Quinn
 economize
by considering only an upper 1×n portion of the board (and its tilings). This
means tiling a 1×n board with 1×1 and 1×2 pieces.

I‘ll
use Benjamin &
Quinn
‘s
frugal tilings to prove Cassini‘s
Identity

Fn+1·Fn+1 -
Fn·Fn+2 = (-1)n

In terms of
the tilings, I want to prove that
Tn·Tn -
Tn-1·Tn+1 = (-1)n.

The meaning
of the term Tn·Tn is obvious: this is
the number of ways to tile two 1×n boards where the tilings of the two boards
are independent of each other. Similarly,
Tn-1Tn+1 is the number of ways to tile
two boards: one 1×(n-1) and one 1×(n+1). Now, the task is to retrieve the
relation between the two numbers annunciated by Cassini‘s identity.

Our setup
consists of two 1×n boards:

with the
bottom board shifted one square to the right:

The
tilings of the two boards may or may not have a fault line.
fault line is a line on the two
boards at which the two tilings are breakable. For example, the tilings below
have three fault lines:

The
trick is now to swap tails: the pieces of the two tilings (along with the
boards) after the last fault line:

Since
the bottom board has been shifted just one square, the swap produces one tiling
of a 1×(n+1) - the top board in the diagram - and one tiling of a 1×(n-1) board
- the bottom board in the diagram. Note that the old faults have been preserved
and no new faults have been introduced.

Thus,
in the presence of faults, there is a 1-1 correspondence between two n-tilings
(Tn) and a pair of (n-1)- and (n+1)-tilings. The time is to account
for the faultless combinations, if any.

But
there are. Any 1×1 square induces a fault. This leaves exactly two faultless
tilings. If n is odd, both n-1 and n+1 are even, there is a unique pair of
(n-1)- and (n+1)-tilings:

If
n is even, there is a unique n-tiling that, when shifted, generates no fault
lines:

References


  1. A. T. Benjamin, J. J.
    Quinn, Proofs
    That Really Count: The Art of Combinatorial
    Proof
    ,
    MAA, 2003

  2. R. Graham, D.
    Knuth, O. Patashnik, Concrete
    Mathematics
    ,
    2nd edition, Addison-Wesley, 1994.

  3. P.
    Zeitz, The
    Art and Craft of Problem Solving
    , John
    Wiley & Sons, 1999






































Related
material
Read more...

 
   
 
 
 
 
 
 
 
 
   

|Contact| |Front
page|
 |Contents| |Algebra| |Store|

Copyright
? 1996-2011 Alexander
Bogomolny

本文转自:


http://www.cut-the-knot.org/arithmetic/combinatorics/FibonacciTilings.shtml

(转)Fibonacci Tilings,码迷,mamicode.com

时间: 2024-10-10 08:00:08

(转)Fibonacci Tilings的相关文章

NYOJ 480 Fibonacci Again!

Fibonacci Again! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 求第n个斐波那契数是否是一个素数,n为整数 f[n]=f[n-1]+f[n-2] (2<n<30) f[1]=3,f[2]=7 输入 输入整数m,0<m<30,输入-1表示结束输入 输出 假设f[m]是素数 则输出Yes,否则输出No, 每行输出占一行. 例子输入 2 3 例子输出 Yes No #include<stdio.h> int f[35]={0

HDU1848 Fibonacci again and again

Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8198    Accepted Submission(s): 3412 Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的:F(1)=1;F(2)=2;

hdu 5167 Fibonacci(DFS)

hdu 5167 Fibonacci 问题描述 斐波那契数列的递归定义如下: Fi=???01Fi?1+Fi?2i = 0i = 1i > 1 现在我们需要判断一个数是否能表示为斐波那契数列中的数的乘积. 输入描述 有多组数据,第一行为数据组数T(T≤100,000). 对于每组数据有一个整数n,表示要判断的数字. 0≤n≤1,000,000,000 输出描述 对于每组数据,如果可以输出"Yes",否则输出"No". 输入样例 3 4 17 233 输出样例

HDU 4099 Revenge of Fibonacci

Revenge of Fibonacci Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 204800/204800 K (Java/Others) Total Submission(s): 2027    Accepted Submission(s): 475 Problem Description The well-known Fibonacci sequence is defined as following: Here w

Fibonacci斐波拉契数列----------动态规划DP

n==10 20 30 40 50 46 体验一下,感受一下,运行时间 #include <stdio.h>int fib(int n){ if (n<=1)     return 1; else            return fib(n-1)+fib(n-2); }int main( ){ int n; scanf("%d",&n); printf("%d\n" ,fib(n) );} 先 n==10 20 30 40 50 46

HUDJ 1021 Fibonacci Again

Fibonacci Again Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 36028    Accepted Submission(s): 17385 Problem Description There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n)

Fibonacci数

Fibonacci数 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为F(n)=1 ...........(n=1或n=2)F(n)=F(n-1)+F(n-2).....(n>2)现要你来求第n个斐波纳奇数.(第1个.第二个都为1) 输入 第一行是一个整数m(m<5)表示共有m组测试数据每次测试数据只有一行,且只有一个整形数n(n<20) 输出 对每组输入n,输出第n个Fibonacci数 实现: package July;

Python中的函数递归思想,以及对比迭代和递归解决Fibonacci数列

什么是递归?简单的说就是:函数自身调用自身. "普通程序员用迭代,天才程序员用递归" 虽然递归 在运行时会不断出栈压栈,调用底层的寄存器,造成空间上的占用以及时间上的缓慢, 但在一些算法上面仍然是递归很实用 但需要注意的是: #递归是自己调用自己 很消耗时间,还会有消耗空间的危险,所以递归递归一定要知道"归去来兮" #所谓"归去来兮"就是指递归的两个原则: #1.调用了函数自身 #2.设置了自身正确的返回值 (必须有一个正确的返回停止条件,不能无

HDU 1588 Gauss Fibonacci(矩阵高速幂+二分等比序列求和)

HDU 1588 Gauss Fibonacci(矩阵高速幂+二分等比序列求和) ACM 题目地址:HDU 1588 Gauss Fibonacci 题意: g(i)=k*i+b;i为变量. 给出k,b,n,M,问( f(g(0)) + f(g(1)) + ... + f(g(n)) ) % M的值. 分析: 把斐波那契的矩阵带进去,会发现这个是个等比序列. 推倒: S(g(i)) = F(b) + F(b+k) + F(b+2k) + .... + F(b+nk) // 设 A = {1,1,