作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设,我在 PARI/GP 中有一个包含 n 个元素的向量。
我想从 n 个元素中生成 k 个组合。
例如,如果向量是[3,7,11,14,18]并且k=3,那么输出应该是
[3,7,11]
[3,7,14]
[3,7,18]
[3,11,14]
[3,11,18]
[3,14,18]
[7,11,14]
[7,11,18]
[7,14,18]
[11,14,18]
PARI/GP 中是否有执行此操作的命令,或者我是否必须对功能进行编程?
最佳答案
不幸的是,PARI 没有内置命令来完成您需要的所有工作。
函数 forvec
(标志 = 2)非常适合组合问题。所以你的函数可以如下所示:
subsets(A, k) = {
my (lst = List());
forvec(v = vector(k, i, [1, #A]), listput(lst, vecextract(A, v)), 2);
Vec(lst)
};
subsets([3,7,11,14,18], 3)
gp> [[3,7,11], [3,7,14], [3,7,18], [3,11,14], [3,11,18], [3,14,18], [7,11,14], [7,11,18],
[7,14,18], [11,14,18]]
关于function - 在 PARI/GP 中是否有一种舒适的方法来生成 n 中的 k 组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488332/
我是一名优秀的程序员,十分优秀!