java - 数组组合的子集 - AS3

标签 java arrays actionscript-3 subset

假设我有一个数组 [0,1,2,3] 和一个参数 2 作为输入

我想要的输出是

0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3

参数的长度决定了每个元组中组合的数量,而数组用于生成数字。

有没有一种快速的方法来做到这一点。

谢谢!

最佳答案

哦,我不知道,但首先,我创建了组合排列,过了一段时间,我为您的任务创建了实用方法。

var subsetTest:Array = [];
subsetFill([0, 1, 2], [], subsetTest, 2);
prettyPrint(subsetTest);

private function subsetFill(values:Array, cursor:Array, result:Array, length:uint):void {
    if (cursor.length > length) {
        return;
    }
    if (cursor.length == length) {
        result.push(cursor.slice());
    }

    var i:uint, len:uint = values.length;

    for (i; i < len; ++i) {
        cursor.push(values[i]);
        subsetFill(values, cursor.slice(), result, length);
        cursor.length = cursor.length - 1;
    }
}

//Auxiliary method for tracing 
private function prettyPrint(list:Array):void {
    var i:uint, len:uint = list.length;

    for (i; i < len; ++i) {
        trace(list[i]);
    }
}

结果:

[trace] 0,0
[trace] 0,1
[trace] 0,2
[trace] 1,0
[trace] 1,1
[trace] 1,2
[trace] 2,0
[trace] 2,1
[trace] 2,2

如果有人感兴趣,我也可以分享组合排列函数;)

关于java - 数组组合的子集 - AS3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22696403/

相关文章:

c++ - 使用小型二维数组会导致堆栈溢出(main 之前的段错误)?

actionscript-3 - 在ActionScript(3.0)中干净地合并两个数组?

c++ - boost::variant for boost::arrays of arbitrary size

用于眼睛跟踪的 Flash 库

actionscript-3 - SEO , Flash 和来自外部文件的数据

java - 让 Java 应用程序在 Windows 上看起来是原生的 - 如何?

java - Java中的groupid是否与包如何相互读取有关?

actionscript-3 - FFMPEG 在 YouTube 上直播时处于永无止境的状态

java - Spring Boot 为自定义错误页面返回 200 状态代码

java - Selenium driver.findElement 查找元素,sendKeys 有效,然后在移动到新字段时清空