[MMA]关于mathematica的Select的问题_(√ ζ ε:)_

2025-04-04 00:28:00
推荐回答(2个)
回答1:

一共两个问题
1、一个数k=k1+k2+......kn,即将k拆成n个数相加;
比如,k=10,n=4时,通过mathematica 已经 得到下面的输出
{{10, 0, 0, 0}, {9, 1, 0,
0}, {8, 2, 0, 0}, {8, 1, 1, 0},
{7, 3, 0, 0}, {7, 2, 1, 0}, {7, 1, 1, 1},
{6, 4, 0, 0}, {6, 3, 1, 0}, {6, 2, 2, 0}, {6, 2, 1, 1},
{5, 5, 0, 0}, {5, 4, 1, 0}, {5, 3, 2, 0}, {5, 3, 1, 1}, {5, 2, 2, 1},
{4, 4, 2, 0}, {4, 4, 1, 1}, {4, 3, 3, 0}, {4, 3, 2, 1}, {4, 2, 2, 2},
{3, 3, 3, 1}, {3, 3, 2, 2}}
但是我想从中提取{7, 2, 1, 0}, {6, 3, 1, 0}, {5, 4, 1, 0}, {5, 3, 2, 0}, 即k1不等于k2不等于......不等于kn的项。
用Mathematica怎么实现?

2、一个数组,比如最初的形式为{d[3], d[2], d[1]},让数组内的元素相互交换,会有
{d[2], d[1], d[3]},{d[1], d[3], d[2]},{d[3], d[1], d[2]},
{d[1], d[2], d[3]},{d[2], d[3], d[1]},这些情况,

然后从中挑选出交换偶数次的结果,即{d[2], d[1], d[3]},{d[1], d[3], d[2]},

最终想要得到输出为:{d[3], d[2], d[1]},{d[2], d[1], d[3]},{d[1], d[3], d[2]},
第二个问的整个过程怎么实现?

回答2:

例如:Select[{1, 2, 4, 7, 6, 2}, True]
结果是:{}
第一个select 的条件中有&&(and)所以,所得结果就是True 或者False,对于Select是无效条件。