![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 80
iteye_17666
这个作者很懒,什么都没留下…
展开
-
吸血鬼数字
今天在看《Java编程思想》的时候遇到求“吸血鬼数字”的问题。 吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,这对数字各包含乘积的一半的数字,例如:1260=21*60,1827=21*87……,1260、1827这样的数字就叫做吸血鬼数字。以两个0结尾的数字不是吸血鬼数字。 我在网上看到了一个比较高效的算法(http://topic.csdn.net/u/...原创 2011-07-20 11:46:02 · 1081 阅读 · 0 评论 -
使用递归求解排列组合问题
排列、组合我们都很熟悉,为了更好的分析问题,我们用A(n,m)表示从n个元素中取出m个元素的不同组合数,用C(n,m)表示从n个元素中取出m个元素的不同排列数。根据排列组合的性质有如下公式成立:1.A(n,m) = n!/m!2.A(n,m) = m*A(n-1,m-1) + A(n-1,m)3.C(n,m) = n!/(m!*(n-m)!)4.C(n,m) = C(n-1,m...2011-03-14 18:17:11 · 307 阅读 · 0 评论 -
运用Horner规则计算多项式的值
对于一个多项式,如:5*X^3 + 4*X^2 + 2*X,我们该如何编程来求多项式的值呢?最直接的做法就是一项一项的求:先求5*X^3,再求4*X^2,继续求2*X,最后把它们的值加起来即可,这样做需要6次乘法运算,2次加法运算。但是运用Horner规则我们可以使用更少的乘法运算和加法运算来得到结果。Horner规则的思想是不断的运用乘法分配率提出X项。以刚才的例子来说,计算过程如下:[(5...原创 2011-03-14 22:04:50 · 848 阅读 · 0 评论 -
自然数的“最大积”分解
问题:给定一个自然数N,求n1,n2……nx,使N = n1 + n2 + …… + nx,并使n1*n2……*nx最大。解法:将N分解为若干个2和3,且2的个数最多为两个。具体来说:若N = 3*k,则分解为k个3; 若N = 3*k + 1,则分解为(k - 1)个3和两个2; 若N = 3*k + 2,则分解为k个3和一...2011-03-21 11:29:23 · 394 阅读 · 0 评论 -
卡特兰数
整理自百度百科。1.卡特兰数是一种数列,以比利时的数学家欧仁·查理·卡塔兰命名。2.卡特兰数列:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012……令第n项为h(n),则: h(0) = 1; h(1) = 1; h(n) = h(0)*h(n-1) + h...原创 2011-03-27 22:01:43 · 136 阅读 · 0 评论