作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为一个时间序列生成一个包含所有排列的数组。假设数字可以是 0、5、10、25,第一个排列是 [0,0,0,0,0,0,0]。下一个排列可以是 [0,0,0,0,0,0,5] 等等,直到 [25,25,25,25,25,25,25]。在这种情况下应该有 4^6 = 4096 个排列,因为有 4 个数字和 7 个槽。
有人可以帮助我了解如何开始解决这个问题吗?我想用javascript写这个。感谢您的考虑。
最佳答案
请参阅随附的脚本,这是我刚刚放在一起的东西。它应该适用于您的情况。我限制了 4 个排列,但应该很容易扩展到 7 个。我希望你能看到这个模式。
var array = new Array();
var values = [0,5,10,25];
for(var i = 0; i < Math.pow(4,4); i++) {
// calculate which indexes to retrieve value from loops through 1..4
var entry = [
Math.floor(i / Math.pow(4,0)) % 4, // increment this with every i
Math.floor(i / Math.pow(4,1)) % 4, // increment this with every 4 * i
Math.floor(i / Math.pow(4,2)) % 4, // increment this with every 16 * i
Math.floor(i / Math.pow(4,3)) % 4 // increment this with every 64 * i etc
];
array.push([values[entry[0]], values[entry[1]], values[entry[2]],values[entry[3]]]);
}
document.write(JSON.stringify(array));
关于javascript - 如何生成时间序列的所有排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367729/
我是一名优秀的程序员,十分优秀!