热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

整数_整数的拆分

本文由编程笔记#小编为大家整理,主要介绍了整数的拆分相关的知识,希望对你有一定的参考价值。母函数将问题转换为关于母函数的某种代数问题甚至变成关于母函数的某种形式的运算,以整数拆
本文由编程笔记#小编为大家整理,主要介绍了整数的拆分相关的知识,希望对你有一定的参考价值。


母函数将问题转换为关于母函数的某种代数问题甚至变成关于母函数的某种形式的运算,以整数拆分为例.

       所谓的整数拆分,即将正整数n分解成 若干正整数的和,不考虑其求和的顺序,一般假定$n = n_1 + n_2 + cdots + n_k, n_1 geq n_2 geq n_3 geq  cdots  geq n_k$,而且分解的形式不唯一,但有一定的限量.例如,n=2的拆分只有2=1+1,n=3则有1+2,1+1+1两种,n=4有1+1+1+1,1+1+2,1+3,2+2四种不同的拆分.

      正整数的拆分可以理解为将n个无区别的球,放入n个有区别的盒子,其每种方案就是一种拆分.

例一      有1克、2克、3克、4克的砝码各一枚,问能称出多少种重量,并各有几种称法?

这个问题可以看作将n拆分成1,2,3,4之和且不允许重复的拆分数,利用母函数计算如下:

$(1+x)(1+x^2)(1+x^3)(1+x^4) \\
=(1 + x + x^2 + x^3)(1 + x^3 + x^4 + x^7) \\
=1 + x + x^2 + 2x^3 + 2x^4 + 2x^5 + 2x^6 + 2x^7 + x^8 + x^9 + x^{10}$

$2x^3$表明称出3克的有2种方案,一种是1+2,一种是3,以此类推,超过10克的便无法称出.

例二    求1角,2角,3角的邮票能贴出的邮资以及方案数,这个问题等价于将n分解成1,2,3的和,且允许重复的拆分数,因为邮票理论上是可以重复的.

利用母函数:

$(1+x + x^2 + cdots)(1+x^2 + x^4 + cdots)(1+x^3 + x^6 cdots) \\
= frac{1}{1-x}cdot frac{1}{1 - x^2}cdot frac{1}{1 - x^3} \\
= frac{1}{1-x-x^2 + x^4 + x^5 - x^6} \\
= 1 + x + 2x^2 + 3x^3 + 4x^4 + 5x^5 + 7x^6 + cdots$

右端的级数是直接除的结果

技术图片

同理,若将$n$分解为$1,2,3, 4,cdots$之和,允许重复,其方案数${a_n}$序列的母函数为

$$
egin{aligned}
G(x) & = (1+x + x^2 + cdots)1 + x^2 + x^4 + cdots)(1 + x^3 + x^6 + cdots)(1 + x^4 + x^8 + cdots) \\
&=prod _{i=1}^{infty}{(1 - x^i)}^{-1} \\
&= frac{1}{1-x}cdot frac{1}{1-x^2}cdot frac{1}{1-x^3}cdot frac{1}{1-x^4} cdots
end{aligned}$$

 


推荐阅读
author-avatar
ex7776647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有