每天我都在努力解决算法问题并尝试在这里问我无法回答的问题。对不起,如果我引起任何头痛。无论如何,
以下是滑铁卢大学ACM编程竞赛的problem。
你可以用多少种方法用2x1多米诺骨牌拼成3xn矩形?
Nirvana:闻起来像递归精神
答案 0 :(得分:10)
只是在taskinoor的答案中隐含给出的方程式的明确解决方案:
或
f[n]=((1 + (-1)^n)*((2 - Sqrt[3])^(n/2)*(-1 + Sqrt[3]) +
(1 + Sqrt[3])* (2 + Sqrt[3])^(n/2)))/(4*Sqrt[3])
如果有人关心。
让我们显示10个值(奇数n没有解){n,f [n]}:
{6, 41.},
{12, 2131.},
{18, 110771.},
{24, 5.75796*10^6},
{30, 2.99303*10^8},
{36, 1.5558*10^10},
{42, 8.08717*10^11},
{48, 4.20377*10^13},
{54, 2.18515*10^15},
{60, 1.13586*10^17}
答案 1 :(得分:5)
您可以使用动态编程解决此问题。检查this以获取可能的解决方案。
答案 2 :(得分:3)
关于如何获得显式求解公式的注意事项,诀窍是将其作为矩阵乘法写下递归,然后使用矩阵的n
幂的特征值公式。对于上面的递归,等式是
(不可用)
你可以看到belisarius'显式公式
中出现了四个特征值