在给定总数、部分数和最大被加数的情况下查找整数分区的数量

2024-03-27

我正在寻找总共 N 个整数分区的数量,其中多个部分为 S,最大部分恰好为 X,而无需枚举所有分区。

例如:所有 100 的分区都有 10 个部分,最大部分为 42。

我没有找到解决这个问题的定理或分区恒等式,我怀疑这是一个不平凡的问题,不容易从已知定理中推导出来(例如 Nijenhuis 和 Wilf 1978、Andrews 等人 2004、Bona 2006):

例如:N 中恰好有 S 个部分的分区数量等于 N 中恰好有 S 部分为最大部分的分区数量。

这个问题与我的研究有关,这远远超出了纯数学的范围。

Update:这个问题在下面得到了回答,但我想发布我用来实现它的Python脚本。我可能会通过 Cython 推动它以获得一些速度。

n = 100 # the total
s = 10  # number of parts
x = 20  # largest part
print Partitions(n,length=s,max_part=x).cardinality() # Sage is very slow at this

def parts_nsx(n,s,x):
    if n==0 and s==0:return 1
    if n<=0 or s<=0 or x<=0:return 0
    if n>0 and s>0 and x>0:
        _sum = 0
        for i in range(0,s+1):
            _sum += parts_nsx(n-i*x, s-i, x-1)
        return _sum    
print parts_nsx(n,s,x) 

对于这个数量的分区递归P(n,s,x) holds:

P(n,s,x) = sum P(n-i*x, s-i, x-1), for i=0,...,s 
P(0,0,x) = 1
P(n,s,x) = 0, if n <= 0 or s <= 0 or x <= 0

计算效率不高,也许在你的例子中它会足够快。

最好使用记忆法来实现。

Edit:

具有记忆功能的 Python 实现:

D = {}
def P(n,s,x):
  if n > s*x or x <= 0: return 0
  if n == s*x: return 1
  if (n,s,x) not in D:
    D[(n,s,x)] = sum(P(n-i*x, s-i, x-1) for i in xrange(s))
  return D[(n,s,x)]

P(100, 10, 42)
2685871

Update:

满足参数的分区n,s,x可以有i最大尺寸的分区x。 通过删除这些i有尺寸的零件x我们在参数方面遇到了同样的问题n-i*x, s-i, x-1。 例如。 100 的分区有 10 个部分,42 作为最大部分,可以有 0、1 或 2 个大小为 42 的部分。

P(0,0,x) = 1意味着我们在之前的迭代中已经有了分区。

P(n,s,x) = 0, if n>s*x意味着我们不能用最大大小的所有分区对 n 进行分区,因此参数的组合是不可能的。 边界条件是

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在给定总数、部分数和最大被加数的情况下查找整数分区的数量 的相关文章

  • 仅使用整数求平方根

    最近 我在某人的编程课上遇到了一个问题 它要求他们仅使用整数来计算平方根 他们用一个整数来表示小数点之前的部分 用另一个整数来表示小数点之后的部分 问题说不允许使用浮点数 然而 经过一段时间的思考 我似乎无法想出一种不使用浮点的方法 我用谷
  • C 整数溢出

    我正在使用 C 中的整数 试图探索更多关于何时以及如何发生溢出的信息 我注意到 当我添加两个正数时 其总和会溢出 我总是得到一个负数 另一方面 如果我添加两个负数 其总和溢出 我总是得到一个正数 包括 0 我做了一些实验 但我想知道这是否适
  • 如何将一个数表示为4个素数之和?

    这是问题所在 四个素数的和 http acm uva es p v101 10168 html 指出 输入的每一行包含一个整数 N N 输入示例 24 36 46 示例输出 3 11 3 73 7 13 1311 11 17 7 我第一眼就
  • Lua中如何获取表中的最大整数?

    Lua中如何获取表中的最大整数 在Lua 5 1及更早版本中 你可以使用 math max unpack 1 2 3 4 5 这受到Lua堆栈大小的限制 在 PUC Lua 5 1 上 该值的最大值可达 ca 8000 个数字 如果堆栈空闲
  • 如何对无法存储在一个变量中的大数字进行运算

    在Java中 我希望能够对非常大的整数 不能存储在long中 进行操作 我该怎么做 在表现良好的情况下 处理这个问题的最佳方法是什么 我应该创建自己的包含多个长变量的数据类型吗 Example public class MyBigInteg
  • 正则表达式查找字符串中的整数和小数

    我有一个像这样的字符串 str1 12 ounces str2 1 5 ounces chopped 我想从字符串中获取金额 无论它是否是小数 12 或 1 5 然后获取紧邻的前一个测量值 盎司 我能够使用一个非常基本的正则表达式来获取测量
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to
  • Java:不使用 Arrays.sort() 对整数数组进行排序

    这是我们 Java 课程的练习之一中的说明 首先 我想说我 做了我的功课 我不仅仅是懒惰地请 Stack Overflow 上的人帮我回答这个问题 在所有其他练习中 这个特定项目一直是我的问题 因为我一直在努力寻找 完美的算法 编写JAVA
  • 是什么导致 Java(冰雹序列)在我的程序中崩溃

    我制作了一个执行 通常称为 冰雹序列的程序 该程序基本上执行以下操作 创建一个int 值 并为其分配一个值 如果 int 是偶数 则将其除以二 如果 int 为奇数 则将其乘以三并加一 继续这个过程 直到 n 等于 1 它似乎适用于大多数数
  • 如何高效生成总和在指定范围内的所有组合(在所有深度)

    假设您有一组值 1 1 1 12 12 16 如何生成总和在预定义范围内的所有可能组合 不重复 min max 例如 这里是 所有深度的 范围在13 and 17 1 12 1 1 12 1 1 1 12 16 1 16 这假设具有相同值的
  • Solr 不搜索整数?

    我目前正在使用 Solr 为电子商务网站开发搜索引擎 所以我在 schema xml 中得到这两个字段
  • 在 Swift 中将单个整数值视为一个范围

    我需要验证字符串的长度 字符计数允许的值为 6 9 个字符 12个字符 15 个字符 所有具有不同字符数的字符串均无效 因此 我想创建一个 Swift 函数 它接受多个范围并计算字符串 extension String func evalu
  • 存储整数列表的最有效方法

    我最近一直在做一个项目 其中一个目标是使用尽可能少的内存来使用 Python 3 存储一系列文件 除了一个整数列表之外 几乎所有文件都占用很少的空间 大致333 000整数长且整数可达约8000在尺寸方面 我目前正在使用pickle存储列表
  • 在 String 值之后打印 int 值

    我有以下示例代码 int pay 80 int bonus 65 System out println pay bonus bonus pay 有人可以向我解释一下为什么我得到以下输出 145 6580 您的代码正在从左到右解释表达式 pa
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • 为什么循环引导迭代算法的数组大小必须为 3^k+1?

    The 循环引导迭代算法 http www geeksforgeeks org an in place algorithm for string transformation 是一种通过将所有偶数项移至前面并将所有奇数项移至后面同时保留其相
  • 编译器错误:从 int* 到 unsigned int* 的无效转换 [-fpermissive]

    我今天遇到了最奇怪的问题 我正在网上使用一个示例 但令我惊讶的是 它不起作用 他们几乎从不这样做 我自己着手修复它 但我似乎陷入了这个错误 Error Invalid Conversion from int to unsigned int
  • 在 R 中使用整数值代替数值(例如 1L 与 1)作为常量的好处

    在 R 源代码中 大多数 但不是全部 函数使用整数值作为常量 colnames lt function x do NULL TRUE prefix col if is data frame x do NULL return names x
  • 如何按总和的顺序迭代大量整数元组?

    我在用着itertools combinations http docs python org 2 library itertools html itertools combinations迭代整数元组 我对元组感兴趣最低总和满足一些条件
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an

随机推荐

  • React 测试库:何时使用 userEvent.click 以及何时使用 fireEvent

    我目前正在学习 React Testing Library 我想测试鼠标与元素的交互 目前我还不清楚 userEvent click element 和 fireEvent click element 之间的区别 两者都建议使用吗 在下面的
  • 无法连接到生产 Apple 推送通知服务器

    我们使用开发认证和 gateway sandbox push apple com 向配置的设备发送通知没有任何问题 但现在我们的应用程序已在商店中 看来我们甚至无法连接到生产 apn 服务器 gateway push apple com 来
  • Android singletop 单实例和单任务

    我在为不同的活动实现不同类型的启动模式时遇到设计问题 我有 5 项活动 视频列表 视频详情 收藏夹列表 视频搜索 视频播放器 当用户启动应用程序时 它会转到显示视频列表的 VideoList 单击任何视频会将它们带到视频详细信息 该页面中有
  • 使用 JSoup 提取 HTML 表格内容

    如何提取位于以下位置的表的内容 id 2 year 2012 acc conference gt http espn go com mens college basketball conferences stands id 2 year 2
  • 如何使用EMGU CV获取人脸识别的置信度值?

    我正在开发一个项目 其中我应该设计一个应用程序 可以检测路过的人的所有面孔 我有一个非常大的数据库 其中包含几个已知的人 我使用 EigenObjectRecognizer 来识别图像网络摄像头捕获的帧 但问题是有时它会错误地识别某些人 因
  • 如何使用 apply、map 或 applymap 查找 pandas dataframe 中的每一行和每一列数据类型?

    我有如图所示的数据框 我希望每行和列的数据类型都使用 apply map applymap 如何获取这个数据类型 有些列具有混合数据类型 如突出显示的 例如list 和 str 有些有 list 和 dict 示例 pandas 数据框 1
  • 有没有办法在参数替换后从 SqlCommand 获取完整的 sql 文本?

    我创建了一个带有包含参数的 SQL 查询的 SqlCommand 然后我将所有参数添加到类中 在将 SQL 查询发送到数据库之前 是否有一种简单的方法可以查看生成的 SQL 查询 这对于调试目的来说会很方便 例如 复制整个查询并在管理工作室
  • main.cpp:(.text+0x5f): 未定义的引用

    我尝试从 SDL 指南中编写一些练习 我这样编译 g o main main cpp I usr local include SDL2 L usr local lib lSDL2 我得到这个 tmp cci2rYNF o In functi
  • ASP.Net MVC:如何读取我的自定义声明值

    请参阅下面的代码 我知道通过这种方式我们可以将自定义数据添加到索赔中 但现在的问题是如何读回这些值 假设我想读回索赔价值电子邮件和电子邮件2请告诉我需要编写什么代码来读回索赔值电子邮件和电子邮件2 UserManager
  • 如何每秒运行一个 Runnable 来更新 UI

    我正在尝试在 kotlin android 中编写代码以每秒移动一个图像 但我无法使其工作 现在我正在使用Timer安排一个Timer Task每秒 但它没有按预期工作 这是我的代码 class Actvt Image
  • 使用 Google Pretify 显示 HTML

    为了让 Google Prettify 正确显示 HTML 代码示例 您应该替换所有 lt with lt 和所有的 gt with gt 如何仅使用 JavaScript 来自动化该过程 如果您将代码放入
  • 使用 Oracle SQL Developer 查询两个数据库

    有没有办法在 Oracle SQL Developer 中查询两个数据库 在单个查询中 我对 Oracle 不太熟悉 无论如何 除了标准的 CRUD 语法 我正在尝试从 SQL Server 表插入 Oracle 表 想做这样的事情 INS
  • 使用 CSS 显示徽标的正确方法是什么?

    我最近一直在学习CSS 我正在观看的教程系列说显示徽标图像的最佳方法是将文本包装在H1标签中 然后将该标签的CSS样式设置为背景图像 并带有文本缩进 99999 或类似的大数字 这看起来非常粗俗和不优雅 对于 SEO 目的来说 使用 CSS
  • 如何检查 NSString 是否包含数字值?

    我有一个从公式生成的字符串 但是我只想使用该字符串 只要它的所有字符都是数字 如果不是 我想做一些不同的事情 例如显示错误消息 我一直在环顾四周 但发现很难找到任何符合我想做的事情 我看过 NSScanner 但我不确定它是否检查整个字符串
  • 在python中将字节转换为文件对象

    我有一个小应用程序 它使用以下方式读取本地文件 open diefile path r as csv file open diefile path r as file and also uses linecache module 我需要将用
  • Angular2 查询参数订阅触发两次

    尝试处理 OAuth 登录场景 其中如果用户登陆页面authorization code在查询字符串中 我们处理令牌并继续or如果他们在没有该令牌的情况下登陆页面 我们会检查本地存储中是否存在现有令牌 确保其仍然有效 并根据其有效性重定向到
  • requestAccessToEntity iOS6-向后兼容性-EKEventStore

    遵循 iOS6 eventKit 和新的隐私设置 我使用以下代码 它在 iOS6 设备上运行得很好 不过 我希望相同的代码也适用于 iOS 5 x 的设备 并且我希望不要编写 相同的代码 两次 似乎是错误的 任何人都可以协助优雅的解决方案
  • 使用 Tailwind CSS 创建包含文本的水平线 (HR) 分隔线

    我想创建一个 hr 使用 Tailwind CSS 进行分隔 但我想在中间添加一些文本 而不是跨越整个页面宽度的水平线 例如 Continue 我在文档中找不到类似的内容 我怎样才能达到这个效果 如有必要 我可以将 HTML 更改为除 hr
  • spring,如何更改cglib命名策略

    当spring创建代理时 它使用带有默认命名策略的cglib 有什么办法可以改变命名策略吗 生成的类名与我使用的另一个框架冲突 好像是cglibclaims http cglib sourceforge net apidocs net sf
  • 在给定总数、部分数和最大被加数的情况下查找整数分区的数量

    我正在寻找总共 N 个整数分区的数量 其中多个部分为 S 最大部分恰好为 X 而无需枚举所有分区 例如 所有 100 的分区都有 10 个部分 最大部分为 42 我没有找到解决这个问题的定理或分区恒等式 我怀疑这是一个不平凡的问题 不容易从