- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是一个典型的 Power Loop problem ,而我只需要一个简单而优雅(紧凑)的解决方案...我将展示带有嵌套 for 循环 的问题/解决方案示例。假设我需要将这段代码转换为递归:
console.log("bits","Binary")
for (let i=0; i<2; i++) {
show(i)
for (let j=0; j<2; j++) {
show(i,j)
for (let k=0; k<2; k++)
show(i,j,k) // ... l,m,n,o,p
} // j
} // i
function show(...args) {
let code = String( args.reduce( (ac,cur) => ''+ac+cur ) )
console.log( code.length, code )
}
这个 3 级样本的 14 行唯一输出是
bits Binary
1 '0'
2 '00'
3 '000'
3 '001'
2 '01'
3 '010'
3 '011'
1 '1'
2 '10'
3 '100'
3 '101'
2 '11'
3 '110'
3 '111'
我正在尝试使用引用来解决 this solution :
callManyTimes([2,2,2], show);
function callManyTimes(maxIndices, func) {
doCallManyTimes(maxIndices, func, [], 0);
}
function doCallManyTimes(maxIndices, func, args, index) {
if (maxIndices.length == 0) {
let x = args.slice(0); // cloning
while(x.length>0) {
func(x); // why send array[array]?
x.shift();
}
} else {
var rest = maxIndices.slice(1);
for (args[index] = 0; args[index] < maxIndices[0]; ++args[index]) {
doCallManyTimes(rest, func, args, index + 1);
}
}
}
function show(...args) {
if (typeof args[0] == 'object') args=args[0] // workaround... can optimize?
let code = String( args.reduce( (ac,cur) => ''+ac+cur ) )
console.log( code.length, code )
}
输出有重复的行,但有一部分行是解决方案...所以,看起来很近,但很丑(没有优雅地使用循环堆栈等)
3 '000'
2 '00'
1 '0'
3 '001'
2 '01'
1 '1'
3 '010'
2 '10'
1 '0'
3 '011'
2 '11'
1 '1'
...
最佳答案
您可以采用一个函数,该函数为生成的值采用一个临时数组。
function show(...args) {
let code = args.join('');
console.log(code.length, code);
}
function callManyTimes(max, cb, items = []) {
var i, temp;
if (items.length === max.length) return;
for (i = 0; i < max[items.length]; i++) {
temp = items.concat(i);
cb(...temp);
callManyTimes(max, cb, temp);
}
}
callManyTimes([2, 2, 2], show);
关于javascript - 如何在参数数量不断增加的电源循环中使用递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506376/
是否可以通过编程方式关闭 iPhone,或者 Apple 不允许这样做? 如果 Apple 不允许这样做,是否可以通过编程方式将 iPhone 静音? 最佳答案 您使用官方 SDK 创建的 iPhon
我目前正在使用 Phonegap Build (3.7) 构建一个简单(但有用)的移动应用程序。 我正在制作的应用程序需要模拟信息亭模式类型的应用程序,因此该设备将仅与该应用程序一起使用,而不会用于其
当使用 numpy.power(2,N) 时,N 是一个整数,我遇到了以下问题: In[1] np.power(2,63) Out[1] -9223372036854775808 RuntimeWar
我的老板想从 Reporting Services 切换到 Power View,但他想知道您可以在 SSRS 中执行的所有操作是否首先在 Power View 中可用。 我立即注意到的一件事是我无法
我希望当我的应用程序运行时,电源按钮(按下时锁定屏幕并且屏幕变黑)应该被禁用。使用户无法锁定屏幕。 我在三星 Galaxy S 手机的默认相机应用程序中注意到了这个东西。这就是我尝试做同样的事情的原因
我有包含字段 Amount, Condition1, Condition2 的表格。 例子: Amount Condition1 Condition2 ---------------------
我正在计算给定时间范围内每月唯一 ID 的数量,但我遇到了两件奇怪的事情: 1. 寻找相同的东西,但使用两种不同的方法(每个月的值和逐月的累积值)给出不同的值。请参阅下面的屏幕截图。 2.当您在第一列
是否可以使用 Linux 手动打开/关闭 USB 电源? 有一个外部 USB 冷却风扇(你用来冷却自己的那种,而不是 PC),如果能够从终端控制它会很好,因为我想把风扇放在很远的地方。 我想这对其他各
我刚刚开始使用 Power Bi,现在我需要一些帮助。 我需要一个公式来创建一个使用以下逻辑的新列(在下面的示例图片中称为“组合”): 在每个 ParentID 上构建 Current 列的总和 如果
我在 Power BI 的 Power Query 编辑器中运行 Python 脚本来转换和处理我的数据。在这些计算之后,我想将数据集和另一个表返回到 Power Query 编辑器。我是否正确认为第
我想为 Linux 上的 GPU 设备关闭“真正的”PCIe 电源。我找到了一些主页,但它们无法切断“真实”的力量。 我监测了交流电的使用情况,但所有这些都无法减少实际用电情况。你能告诉我如何关闭设备
我在使用 PowerShell 脚本通过 Power BI rest api 更新数据集参数时遇到了一些困难。 我的脚本基于这些资源: https://learn.microsoft.com/en-u
如何使用使用两个现有表作为输入的 Python 脚本创建新表?例如通过执行 left join使用 pandas merge ? 部分详情: 使用 Home > Edit queries您可以在 Tr
由于数据的 secret 性,我将尝试使用一些随机示例来描述我正在努力解决的问题。假设我在 Power BI 中有一个包含发票数据的事实表。我需要计算过去 12 个月销售额超过 50,000 欧元的不
我专门尝试使用 Power Query 编辑器将 Column A 中的字符串:yyyymmdd 转换为 dd/mm/yyyy 日期格式电源 BI。我已经可以使用以下公式在 Excel 中执行此操作:
我有一个方法: public class MarginConverter { int top = 0; int bottom = 0; int right = 0; i
这个问题衍生出了我之前发布的一个问题; Custom x-axis values in Power BI 假设以下数据集: 专注于第二排和第三排。我怎样才能使下面相应图表中的线是连续的而不是停在中间?
我是一名优秀的程序员,十分优秀!