本文是整数划分的第二节,主要介绍整数划分的一些性质。

先来弥补一下上一篇文章的遗留问题:要求我们所取的 (n=m1+m2+...+mi )中  m1 m2 ... mi连续,比如5=1+4就不符合要求了。这个时候的整数划分怎么操作呢?

这个问题的答案是这样的:

假设 n = r + (r + 1) + · · · + (r + k) ,我们需要找到所有的 r,这样我们就能获得划分数目了。

对上式进一步合并我们获得了 (2r + k)(k + 1) = 2n. 我们知道等式右面为一个偶数,而左边两个数的奇偶性是不一样的。所以问题就转化为找到一个奇数和一个偶数使其乘积为2n,这个奇数的种类数就是我们需要的,事实上这等于n的奇因数个数。

接着我们来看一下怎么用图形来表示整数划分:Ferrers Diagrams

比如10=5+3+1+1,那么我们就可以这样来表示:

从这样的表示中我们可以很显然获得一个结论:n的关于m的划分(n划分中的数不超过m)个数 等于 n的划分中元素个数为m个的划分数。

这个结论之所以很显然是因为我们只需要将上图旋转90度就可以获得 划分中元素个数为m的划分了;反之亦然。

求证:关于n的所有划分中不包含1的划分总个数 等于 n的划分总数减去n-1的划分总数,用式子我们可以这么来表示:

f(n) = p(n) − p(n − 1).

证明:

生成函数  =

=

=

当不允许使用1的时候,生成函数为 =

=

=

故而有

  =       (1-x) *    

所以,f(n) = p(n) − p(n − 1).

四 有多少种赋值方式(非负整数)使得 x1 + x2 + x3 + x4 + x5 + x6 = 32

解法一:

组合数学。32个球排成一行,插入五个隔板(可以理解为有标志的球)就可以获得我们需要的划分了,下图是一种划分,

•| • | • • • | • • • • • | • • • • • • • • • •| • • • • • • • • • • • •

答案是C375   ,注意一下底数是37而不是33。

解法二:

整数划分 Integer Partition(二)的更多相关文章

  1. 整数划分 Integer Partition(一)

    话说今天百度面试,可能是由于我表现的不太好,面试官显得有点不耐烦,说话的语气也很具有嘲讽的意思,搞得我有点不爽.Whatever,面试中有问到整数划分问题,回答这个问题过程中被面试官搞的不胜其烦,最后 ...

  2. Integer Partition(hdu4658)2013 Multi-University Training Contest 6 整数拆分二

    Integer Partition Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...

  3. nyoj_176_整数划分(二)_201404261715

    整数划分(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 把一个正整数m分成n个正整数的和,有多少种分法? 例:把5分成3个正正数的和,有两种分法: 1 1 3 ...

  4. NYOJ-571 整数划分(三)

    此题是个非常经典的题目,这个题目包含了整数划分(一)和整数划分(二)的所有情形,而且还增加了其它的情形,主要是用递归或者说是递推式来解,只要找到了递推式剩下的任务就是找边界条件了,我觉得边界也是非常重 ...

  5. POJ1664(整数划分)

    放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 30894   Accepted: 19504 Description ...

  6. 大概是:整数划分||DP||母函数||递推

    整数划分问题 整数划分是一个经典的问题. Input 每组输入是两个整数n和k.(1 <= n <= 50, 1 <= k <= n) Output 对于每组输入,请输出六行. ...

  7. hdu-2709整数划分 技巧

    整数划分变形,由2^k组成. 整数划分中一个节约内存的技巧,平时我们使用dp[i][j]维护用不大于j的数组合成i的方案数,所以必须dp[i-j][j]->dp[i][j].这样就需要二位,如果 ...

  8. poj1664 放苹果(DPorDFS)&&系列突破(整数划分)

    poj1664放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 33661   Accepted: 20824 Desc ...

  9. HDU 4658 Integer Partition (2013多校6 1004题)

    Integer Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

随机推荐

  1. Web Design:给实验室UI们的一堂课(上)

    实验室的UI越来越水,设计什么的做的一塌糊涂,所以拖了很久,就想给他们讲一下设计或者说入门吧,上周末才倒出来时间. 这里放上PPT和讲稿吧,懒得去整理板式了. 主要讲了一下Web Design怎么做, ...

  2. 【Cocoa】 Initializing View Instances Created in Interface Builder

    Initializing View Instances Created in Interface Builder View instances that are created in Interfac ...

  3. C基础 那些年用过的奇巧淫技

    引言 - 为寻一颗明星 为要寻一颗明星 徐志摩 1924年12月1日<晨报六周年纪念增刊> 我骑著一匹拐腿的瞎马, 向著黑夜里加鞭:—— 向著黑夜里加鞭, 我跨著一匹拐腿的瞎马.// 我冲 ...

  4. linux中fork()函数详解

    一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同, ...

  5. mac media server

    近日在mac osx基于开源组件nginx-rtmp-module架设了一台默认的media server,以下是过程笔记 下载https://github.com/arut/nginx-rtmp-m ...

  6. [译]rabbitmq 2.4 Multiple tenants: virtual hosts and separation

    我对rabbitmq学习还不深入,这些翻译仅仅做资料保存,希望不要误导大家. With exchanges, bindings, and queues under your belt, you mig ...

  7. 45.modelsim仿真include文件

    modelsim仿真include文件会出现找不到文件的情况,这是因为include文件路径有两种,一种是相对路径,另一种是绝对路径. 相对路径: 如果 ‘include "primitiv ...

  8. Matlab实现抽样定理

    Matlab实现抽样定理 正弦信号的抽样: 首先时间跨度选择 -0.2 到 0.2,间隔0.0005取一个点,原信号取 sin⁡(2π*60t) ,则频率为60Hz. 由于需要输出原始信号的波形,我选 ...

  9. Labview实现幅度信号调制(AM)

    Labview实现幅度信号调制(AM) 时域上的表达式: 其中,m(t)是交流信号分量,均值为0,需要被调制的信号,此处选择一个正弦信号,正好满足要求. A0是一个直流分量,表示叠加的直流分量,用加法 ...

  10. iOS10推送必看UNNotificationServiceExtension

    转:http://www.cocoachina.com/ios/20161017/17769.html (收录供个人学习用) iOS10推送UNNotificationServic 招聘信息: 产品经 ...