用1*2的骨牌覆盖m*n的矩形
最近想写个程序算算,用1*2的骨牌覆盖m*n的矩形有多少种不同的方式,Wiki上的公式也很漂亮。http://en.wikipedia.org/wiki/Domino_tiling#CITEREFKasteleyn1961
但这种计算怎么保证精度呢?还是可以在计算前先把某些项合并?
这是我现在写的一个C#程序,用的double,算稍微大一些的m*n时,就不准了。
http://www.51nod.com/question/index.html#!questionId=316 用泰勒展开可以也许可以获得更好的精度,但感觉有取巧的办法。 这个问题有意思******* 这个问题有意思*******
mathematica 发表于 2012-8-28 08:55 http://bbs.emath.ac.cn/images/common/back.gif
还请多多指教。 可以试试这样:
先把4提取出来,求对数,求和,再指数运算,将结果逆回来 可以试试这样:
先把4提取出来,求对数,求和,再指数运算,将结果逆回来
wayne 发表于 2012-8-29 20:41 http://bbs.emath.ac.cn/images/common/back.gif
如果最后可以逆回来的话,是否对这个精度要求会更高? 6# litaoye
嗯,是的.不过,比起直接连乘来,取对数能表示更大的范围.
只是题目没有说明m*n 具体有多大, 不好讨论啊 不知道能不能 转化成 整数运算. 6# litaoye
嗯,是的.不过,比起直接连乘来,取对数能表示更大的范围.
只是题目没有说明m*n 具体有多大, 不好讨论啊
wayne 发表于 2012-8-29 21:36 http://bbs.emath.ac.cn/images/common/back.gif
目标是算m = 200,n = 100吧! 9# litaoye
额,太大了吧,结果都有一万多位了。
看来 litaoye 的目标方法就是 用某种巧妙的数学手段化简表达式了