求解正整数拆分的计数问题

实例:

1.无序情况


2.有序情况

说明:首先要判断是有序的、无序的。有序 可以先求无序,再全排列。 接下来再判断是否重复,使用不同的公式。

摘自《离散数学屈婉玲教材》

来自为知笔记(Wiz)

求解正整数拆分的计数问题

时间: 2024-10-28 21:34:14

求解正整数拆分的计数问题的相关文章

poj 2229 完全背包变形(求解整数拆分问题)

整数拆分问题:给定一个正整数n,将n拆分为若干数字的和,问有多少种方法? 此题为整数拆分问题的子问题,拆分出的数字要求是2的幂次. 定义dp[i][k]表示枚举到第k个数字时数字i的拆分方案数. 则有状态转移方程: dp[i][k] = dp[i][k - 1] + dp[i - num[k]][k]; 熟悉完全背包的朋友可以看出,这个方程和完全背包的状态转移方程如出一辙,第二维可以省去,只要将i从小到大枚举即可. 1 #include <iostream> 2 #include <cs

通过递归算法, 求解正整数M的组合

#include <stdio.h> #include <stdlib.h> int Sum(int *buff, int len) { int sum = 0; for (int i = 0; i < len; i++) { sum += buff[i]; } return sum; } void Print(int *buff, int len) { for (int i = 0; i < len; i++) { printf("%d ", bu

UVa 948 - Fibonaccimal Base

题目:给你一个数字表示成fib数列元素加和的形式,如果有对应因子对应编号位为1,否则为0. 分析:Fib,数论.类似二进制数的表示方式. 算法1:已知正整数n: while n <> 0 找到第一个不大于自己的Fib数字Fk 得到新的n = n - Fk end while 输出所有找到的Fk 定理1:{F1,F2,..,Fn} 可以生成(某些元素和)1 ~ ΣFn之间的所有正整数. 证明1:1. {F1,F2}可以生成 1 ~ 3: 2. 设{F1,F2,..,Fn} 可以生成1 ~ ΣFn

证明欧几里得算法的正确性

欧几里得算法又叫辗转相除法,是求解最大公约数的一种古老的方法. 废话不多说,直接开证: 题目:求解正整数a,b(a >= b)的最大公约数. a总可以用b来表示:a = qb + p; 这个式子怎么理解呢? 我们可以这样理解:a是被除数,b是除数,q是商,p是余数(p = a % b). 设 r 为a,b的最大公约数. 则a,b能被r整除(废话- _ -). 下面重点来了:   上式成立. 又因为q*b/r为整除,a也为整数 所以p/r也为整数,即 p 能被 r 整除 此时 r 也是b, p的最

黑马程序员——经典C语言程序设计100例

1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸 11.经典兔子问题 12.判断素数 13.水仙花数问题 14.正整数分解质因数 15.学习成绩划分 16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数 18.求s=a+aa+aaa+aa...a的值 19.求解"完数" 20.球体自由落下物理问题

Python 趣味百题

趣味整数 1 不重复的3位数 -易 2 水仙花数 -易 3 完全数 -中 4 相亲数 -中 5 黑洞数 -中 6 勾股数 -易 7 自守数 -易 8 3位反序数 -中 趣味素数 1 素数 -中 2 孪生素数 -中 3 金蝉素数 -中 4 可逆素数 -中 5 回文素数 -中 6 平方回文素数 -中 7 梅森尼数 -中 8 哥德巴赫猜想 -中 9 等差素数数列 -中 趣味图形 1 回型矩阵 -中 2 九九乘法表 -易 3 杨辉三角 -易 数学问题 1 天平秤物 -难 2 黑色星期五 -易 3 存钱问

最短路(转)模板

基本最短路算法集锦 算法总结: ①Dijkstra算法用的是贪心策略,每次都找当前最短路径的下一个最短距离点.所以不适合带有负权的情况.至于时间效率通过各种优化可以到达不同的程度.但是朴素的Dijkstra算法永远是最稳定的. ②Bellman-Ford算法是Dijkstra的一种变式,它摒弃了贪心的策略,但是每次都需要松弛所有的路径,所以也适合负权的情况.但是时间效率较低.有资料显示,Bellman-Ford算法也可以应用贪心策略,这属于高级技巧,这里不予考虑. ③Floyd算法用的是动态规划

XJOI 高三楼

参观完各种饭堂,学校还有什么著名的景点呢?当然是教室了,此时此刻我 们来到了高三楼.你会发现高三楼门口会有以身份认证系统,这东西还有着一段疼人的历史.每年的九月到来,高三的童鞋大多不习惯学校的作息时间,有人迟到的情况在所难免,2013 届的moreD 同志作为当年的纪检部部长,创造了一种十分厉害的身份认证系统.他会给每位童鞋的饭卡加上一个电子认证信息:一个n*n的矩阵,其中,每行每列都有两个特殊的点.moreD 同志设计的身份认证系统会把这些矩阵读进来,并且对此进行解析,由于每个同学都带有独特的

母函数入门【模板】

正整数拆分 hdu1028 解: 对于正整数 $n$ 的拆分,其母函数为 $$f(x) = (1+x+x^2+...)(1+x^2+x^4+...)(1+x^3+x^6+x^9+...)...$$ 答案就是多项式展开后 $x^n$ 项的系数. Code: //其实就是模拟,从前往后一一合并 #include<bits/stdc++.h> using namespace std; const int _max = 10001; int c1[_max], c2[_max]; //c1存放前面项计