不同长度且不重复的组合

发布于 2024-10-09 23:17:45 字数 200 浏览 4 评论 0原文

任何人都可以建议一种简单的方法来获得所有组合而无需重复,并且长度不同?

[0,1,2,3,4]

(2): [0,1],[0,2],[0,3] ... [3,4]

(3 的): [0,1,2],[0,1,3] ... [2,3,4]

(4 的): [0,1,2,3],[0,1,2,4] ... [1,2,3,4]

Can anyone suggest an easy way of getting all combinations without repeats, and with a varying length ?

[0,1,2,3,4]

(2's) :
[0,1],[0,2],[0,3] ... [3,4]

(3's) :
[0,1,2],[0,1,3] ... [2,3,4]

(4's) :
[0,1,2,3],[0,1,2,4] ... [1,2,3,4]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻风 2024-10-16 23:17:45

我花了一段时间,但我想我已经在这里了......

这有所有组合,没有重复

var arr:Array = [0, 1, 2, 3, 4];
var $allcombos:Array = [];
findCombos($allcombos,[],arr);

function findCombos($root:Array, $base:Array, $rem:Array):void {
    for (var i:int = 0; i < $rem.length; i++) {
        var a:Array = $base.concat();
        a.push($rem[i]);
        findCombos($root, a, $rem.slice(i + 1));
        if (a.length > 1) {
            $root.push(a);
        }
    }
}

took me a while but I think I've got it here...

this has all the combinations without repeats

var arr:Array = [0, 1, 2, 3, 4];
var $allcombos:Array = [];
findCombos($allcombos,[],arr);

function findCombos($root:Array, $base:Array, $rem:Array):void {
    for (var i:int = 0; i < $rem.length; i++) {
        var a:Array = $base.concat();
        a.push($rem[i]);
        findCombos($root, a, $rem.slice(i + 1));
        if (a.length > 1) {
            $root.push(a);
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文