gpt4 book ai didi

r - 创建包含预算内所有组合的矩阵

转载 作者:行者123 更新时间:2023-12-02 23:53:31 24 4
gpt4 key购买 nike

我正在尝试创建一个矩阵,其中包含一定范围内的所有数字组合,以便行总和为特定值。我不确定是否有一个函数可以实现此目的,或者我是否需要手动创建该函数。我尝试过组合函数,但它不限制总和,因此矩阵很快就会变大。

示例:3 行之和为 5

5,0,0
4,1,0
4,0,1
3,2,0
3,0,2
3,1,1
2,3,0
2,0,3
2,2,1
2,1,2
etc..

最佳答案

这些组合对象称为 partitions (另请参见 here 甚至 here ),并且它们的计算是由 partitions 实现的包裹。

根据您真正想要的,使用以下选项之一:

library(partitions)

## The first argument says you want to enumerate all partitions in which the
## second argument (5) is broken into three summands, each of which can take a
## maximum value of 5.
blockparts(rep(5,3),5) ## Equiv: blockparts(c(5,5,5), 5)
#
# [1,] 5 4 3 2 1 0 4 3 2 1 0 3 2 1 0 2 1 0 1 0 0
# [2,] 0 1 2 3 4 5 0 1 2 3 4 0 1 2 3 0 1 2 0 1 0
# [3,] 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 3 3 3 4 4 5

restrictedparts(5,3)
#
# [1,] 5 4 3 3 2
# [2,] 0 1 2 1 2
# [3,] 0 0 0 1 1

关于r - 创建包含预算内所有组合的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20618743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com