algorithm - 使用递归的可能分类

标签 algorithm recursion

我有两个数组,一个包含顶级类别,另一个包含子类别,其中子类别的长度 > 顶级类别的长度。

我正在尝试编写一个递归算法,以便为我提供所有可能的方法来将子类别放入顶级类别。因此,例如,如果我有顶级类别 [A,B,C] 和子类别 [W,X,Y,Z] 我会得到:

A->WXYZ, B->null, C->null
A->XYZ,  B->W,    C->null
A->WYZ,  B->X,    C->null
...
A->null, B->Z,    C->WXY
A->null, B->null, C->WXYZ

乍一看,我认为这个问题不能用典型的置换算法来解决,但我可能错了;我不太擅长递归。

谢谢!

最佳答案

您不需要排列,也不需要递归,您只需要计数。假设您有 N 个类别和 M 个子类别 - 您需要遍历以 N 为基数的所有 M 位数字。

让我们选择您的 3 个类别,但将它们称为 0、1 和 2 - 即以 3 为基数的所有数字。现在让我们看看以 3 为基数的所有 4 位数字:

0000, 0001, 0002, 0010, 0011, 0012, ..., 2212, 2220, 2221, 2222

每个数字代表子类别到类别的分配,就像这样 - 第一个数字代表子类别 W,第二个数字代表子类别 X,第三个数字代表子类别 Y,最后一个数字代表子类别 Z。

因此,0000 表示 WXYZ 属于第一类(示例中的第一行)。 1000 是您的第二行,2222 是您的最后一行,依此类推。

关于algorithm - 使用递归的可能分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954076/

相关文章:

algorithm - 查询的复杂性?

java - 图像大小调整双线性插值和最近邻

java - 存储多个数字范围以供将来搜索的有效方法

javascript - 分区集使得笛卡尔积服从约束

javascript - 扫雷的 JQuery 网格递归(单击相邻图 block )

Python递归向后打印列表中的项目

Javascript 洪水填充算法陷入无限循环

algorithm - 预测数据库中缺失的数据值

Python 字符串的所有可能组合

javascript - 我想使用 readdir (异步)和递归来查找特定扩展名的文件