问题标签 [integer-partition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 可变数量的依赖嵌套循环
给定两个整数n
和d
,我想构造一个长度为 的所有非负元组的列表d
,n
包括所有排列。这类似于整数分区问题,但解决方案要简单得多。例如
d==3
:
这可以很容易地扩展到更多维度,例如d==5
:
我现在想做d
一个变量,即嵌套循环的数量,但我不确定如何嵌套循环。
有什么提示吗?
python - Python中的受限整数分区
我想知道有多少种方法可以仅使用 1、2、5、10、20、50、100 和 200 来制作 500。我知道存在可以解决此类问题的贪婪算法等,但我希望能够通过以下方式做到这一点:
给定数 n 的整数分区数,仅使用某个集合 T 中的数,可以从所有 (1-x t ) -1乘积中的 x n项的系数获得,其中 t 在 T .
为此,请注意 (1-x t ) -1的泰勒展开式等于 (1+x t +x 2t +...)。这是我到目前为止编写的代码:
我的问题是我不确定这个给出的答案是正确的。我已经将它与其他两种贪心算法进行了比较,它们的输出彼此一致,但不是我的。谁能看到我可能出错的地方?
prolog - 如何转换为定句语法
我正在尝试编写一个明确的子句语法来输出数字的分区。例如?- w(3,L,[])
应该输出:
我的代码如下所示:
我的分区函数似乎工作正常,但我不确定如何正确实例化“w”。抱歉,如果这真的很基本,我对序言很陌生。
python - 计算机查找非负整数 x_1<=x_2<=...<= x_n 和总和为 100 的最快方法
我想为计算机找到一种有效的方法来处理大量变量(比如 50:x1,...,x50),这些变量执行如下操作:找到所有组合 [x1,x2,x3] 满足:
0 <= x1 <= x2 <= x3
x1 + x2 + x3 = 100
这是一个查找 sum = 100 的所有组合的示例,但 [1,99] 和 [99,1] 在这里被认为是不同的:
我想找到一种方法来减少循环次数,并且只提供以下内容:
[0,100], [1,99], [2,98], ...., [50,50]
[51,49] 中没有任何内容。
主要目标是使用 50 个变量 (x_1,...x_50) 执行此操作,总和为 100。
用正常循环不太可能做到这一点
python - Python 和数论:我们如何创建 q(n) 的生成函数(将 n 划分为不同部分的数量)?
从https://en.wikipedia.org/wiki/Partition_%28number_theory%29#Restricted_partitions,我们知道整数 p(n) 的分区数由下式给出
可以用python写成:
我的问题是:如何修改它以返回 q(n),即包含不同部分的分区数?
IE;
p(3)=2
, 因为
3=2+1
3=1+1+1
(1,1,1)
不明显。
但是q(3)=1
,因为只
3=2+1
包含不同的元素。
的生成函数由q(n)
下式给出
我在 python 中找不到一个好的产品函数,它可以将产品从 n 返回到无穷大。
c++ - 如何索引双重限制的整数分区?
枚举具有以下 2 个限制的正整数的所有分区时:
- 每个分区的大小总是
PartitionSize
- 这些分区的所有元素都小于或等于
MaxVal
,并且大于零。
...我面临着对这些分区进行编号/索引的任务,这样我可以存储它们的索引,然后检索它们以从任意索引快速重新生成一个分区的元素。索引不需要是连续的。
问:计算此类分区索引的最佳方法是什么?
下面列出了生成这些分区的函数:
请注意,此函数会生成分区,其中每个分区中的所有元素都按从小到大(从左到右)排序。此功能不能被破坏。
分区本身(垂直)之间的排序是字典顺序的。失去它我会不高兴,但没有它我还能活下去。
此外,我故意选择不将其作为递归函数来实现,因为递归解决方案对非常大的分区(尽管实现更简单)具有低性能和 RAM/堆栈影响。
如果有人想编译它,下面是帮助函数。
arrays - 具有 k 个部分的 rank 和 unrank 整数分区
对于正整数n和k,设“ n的k分区”是k个不同正整数的排序列表,它们加起来为n ,并让给定的n的k分区的“等级”是它在所有这些列表按字典顺序排序的列表,从 0 开始。
例如,有两个 5 的 2 分区(n = 5,k = 2):[1,4] 和 [2,3]。由于 [1,4] 按字典顺序排在 [2,3] 之前,因此 [1,4] 的秩为 0,[2,3] 的秩为 1。
所以,我希望能够做两件事:
- 给定n、k和n的k分区,我想找到n的k分区的等级。
- 给定n,k和一个等级,我想找到n具有该等级的k分区。
我可以这样做而不必计算n的所有k分区在感兴趣的分区之前吗?
这个问题与其他问题不同,因为我们在这里讨论的是整数分区而不仅仅是组合。
arrays - 从一组属性重构位序列
我想从给定的 Sets ones
、数字x
和其他属性重建一个 Bitsequence。在位序列中,第一位的值为 1,第二位的值为 2,第三位的值为 3。依此类推。
例如我有以下属性:
x=15(所有设置位值的总和)
位序列长度:8
所有子序列中的计数1
:2
子序列数1
:1
- 子序列长度:2
所以解决方案是11000000
。
可以存在多个解决方案,我对所有解决方案都感兴趣
我怎样才能有效地找到具有给定属性的解决方案?
r - 查找 6 个数字加起来为 10 的所有组合的列表
所以我之前看到过这个问题的类似版本(Getting all combination which sum up to 100 using R)但我正在努力寻找一种方法来确定我需要专门运行什么。我正在尝试在 R 中创建一个包含 6 个数字的所有不同组合的列表,这些数字加起来为 10。但是,我想在行中包含 0 和相同 # 的重复。所以它看起来像这样:
10 0 0 0 0 0
9 1 0 0 0 0
8 2 0 0 0 0
我试过运行以下命令:
但是,当我这样做时,它似乎不包括其中包含 0 的变体。我尝试将 include.zero=TRUE 函数输入到我正在运行的不同部分,但到目前为止我还没有运气。有什么建议么?
python - 在 Python 中将整数 n 的受限弱整数组合(或分区)生成 k 部分
(重新发布,因为我没有得到对我之前的帖子的任何回应)
我正在尝试编写一个 Python 代码来生成一个数字“n”到“k”部分但具有最小值和最大值的弱整数组合(分区)每个分区的值约束(参见下面给出的示例)。此外,分区必须按字典顺序生成。我找到了一些相关的帖子,但一直无法实现。任何帮助将不胜感激。
示例:
k=3 部分中 n=5 的可能整数分区:
[5,0,0], [4,1,0], [4,0,1], [3,2,0], [3, 1,1], [3,0,2], ..., [0,0,5]
在强制分区中的每个整数都有一个最小值 0 和一个最大值 3 的约束之后,我应该得到:
[ 3,2,0], [3,1,1], [3,0,2], ...等等,只有。