gpt4 book ai didi

wolfram-mathematica - 列表的顺序子集

转载 作者:行者123 更新时间:2023-12-04 01:16:47 25 4
gpt4 key购买 nike

给出一个列表说

{"a", "b", "c", "d"}

有没有更简单的方法来生成这样的顺序子集列表(结果的顺序并不重要)
{
{"a"},
{"a b"},
{"a b c"},
{"a b c d"},
{"b"},
{"b c"},
{"b c d"},
{"c"},
{"c d"},
{"d"}
}

最佳答案

我想我最喜欢这个:

set = {"a", "b", "c", "d"};

ReplaceList[set, {___, x__, ___} :> {x}]

随着字符串加入:
ReplaceList[set, {___, x__, ___} :> "" <> Riffle[{x}, " "]]

以类似的方式,特定于字符串:
StringCases["abcd", __, Overlaps -> All]

由于 Nasser 说我在作弊,这里有一个更手动的方法,它在大型集合上也有更高的效率:
ClearAll[f, f2]
f[i_][x_] := NestList[i, x, Length@x - 1]
f2[set_] := Join @@ ( f[Most] /@ f[Rest][set] )

f2[{"a", "b", "c", "d"}]

关于wolfram-mathematica - 列表的顺序子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861517/

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