javascript 用于从2D矩阵创建笛卡尔积的递归函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 用于从2D矩阵创建笛卡尔积的递归函数相关的知识,希望对你有一定的参考价值。
const cartesianProduct = matrix => {
let indexes = new Array(matrix.length).fill(0),
output = [];
let f = function (ic, ie) {
if (ic < 0) {
return;
}
if (ie >= matrix[ic].length) {
return f(ic - 1, indexes[ic - 1] + 1);
} else {
indexes[ic] = ie;
}
if (ic + 1 <= matrix.length - 1) {
f(ic + 1, 0);
} else {
output.push(_.map(indexes, function (ind, i) {
return matrix[i][ind];
}));
if (indexes[ic] + 1 < matrix[ic].length) {
f(ic, indexes[ic] + 1);
} else if (ic - 1 >= 0) {
indexes[ic] = 0;
f(ic - 1, indexes[ic - 1] + 1);
}
}
};
const init = () => f(0, 0);
init();
};
以上是关于javascript 用于从2D矩阵创建笛卡尔积的递归函数的主要内容,如果未能解决你的问题,请参考以下文章
生成笛卡尔积的两个表之间的连接
基于笛卡尔坐标点积的算法计算地理距离
笛卡尔积的两个向量?
笛卡儿积的java实现
Erlang List对笛卡尔积的理解
IfcCartesianTransformationOperator2D