JSFiddle - React, Tailwind, and code Playground
by imsky
JavaScript
function a2(a, b) {
var n = a.length;
//Size of tuples
var l = Math.log(n) / Math.log(b);
//Remaining items after tuples are processed
var r = (n-1)%l, G = [], M=[];
//How many tuples can be processed
var p = (n-1-r)/l
for(i = 0; i < n; i++){
G[i] = 1;
for(j = 0; j < l; j++){
G[i] *= a[(i+j)%n]
}
}
for(i = 0; i < n; i++){
var q = -1;
M[i] = 1;
for(j = 0; j < p; j++){
q = ((i+1) + (j*l))%n;
M[i] *= G[q]
}
for(j = 0; j < r; j++){
M[i] *= a[j+((q+l)%n)]
}
}
return M;
}
var a = []
for(i = 0; i < 8; i++){
a[i] = i+1
}
console.log(a2(a, 2))