zoukankan      html  css  js  c++  java
  • 整数的拆分

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

           所谓的整数拆分,即将正整数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}$$

  • 相关阅读:
    hyperledger fabric相关记录
    prometheus相关文章
    zookeeper和kafka的使用
    ubuntu1604 golang环境
    haproxy keepalived和nodejsv9的容器镜像所需文件
    图片相似算法
    oracle lpad rpad
    网站资料
    Win7 wifi热点设置
    Oracle存储过程编写经验和优化措施
  • 原文地址:https://www.cnblogs.com/lfri/p/10463440.html
Copyright © 2011-2022 走看看