Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取所有可能的数字组合(最快的方法)_Javascript_Performance - Fatal编程技术网

Javascript 获取所有可能的数字组合(最快的方法)

Javascript 获取所有可能的数字组合(最快的方法),javascript,performance,Javascript,Performance,我试图将元素的每一个组合都放入一个数组中。现在我可以使用下面的方法,删除重复项,但这种方法对我来说远远不够慢 下面的代码将找到下面2位的所有可能组合。现在,在我实际想要使用它的代码中,循环(相互之间)的最小可能代码是6,数量是18(请记住,这是最小值) 下面的代码将执行amount^[amount of for loops],或amount^2,在本例中为16。这意味着在我想要使用它的代码中,它执行18^6次,或者3400万次。这是最小值,它会变得更高 在尝试运行我的代码后(使用6个foor循环

我试图将元素的每一个组合都放入一个数组中。现在我可以使用下面的方法,删除重复项,但这种方法对我来说远远不够慢

下面的代码将找到下面2位的所有可能组合。现在,在我实际想要使用它的代码中,循环(相互之间)的最小可能代码是6,数量是18(请记住,这是最小值)

下面的代码将执行
amount^[amount of for loops]
,或
amount^2
,在本例中为16。这意味着在我想要使用它的代码中,它执行
18^6次,或者3400万次。这是最小值,它会变得更高

在尝试运行我的代码后(使用6个foor循环,其中
amount=18
),它使我的浏览器崩溃我的问题是:我的浏览器有没有更快更高效的(不优雅。我不在乎它有多优雅?)不会崩溃

注意:这个问题不是重复的问题。所有其他的问题都只是简单地要求一种方法来做到这一点,然而我已经有了一种方法。我只是想让它更高效更快,这样它才能真正正常工作

let组合=[];
设金额=4;
for(设a=0;a控制台日志(组合)我不知道有什么更好的解决方案,但是是的,您需要先检查一些条件


If(amountOk,如评论中所述,如果您需要某个特定金额的前3个值,您可以只做如下简单操作:

let amount=6;
设最高=金额-1,第二高=金额-2,第三高=金额-3;
让可能性=[
最高+最高,
最高+次高,
最高+第三高
];

console.log(可能性);
如果有人输入负值或零值,你的循环
什么?问题中甚至没有提到
用户输入
你为6位数字创建了6个循环
他说这会“使他的浏览器崩溃”对于数量为18的6个循环…所以,他知道创建6个循环,但事实并非如此work@JaromandaX例如,他创造了一个静态的东西,我给了他概览,所以将来它也将有助于考虑所有这些场景,他给出了一个2位数的例子,现在你会说它是2位数,只有它是如何失败的。R6个数字?这仅仅意味着他的数量和数字是随机的。哇,你告诉他做6个嵌套循环…
我实际上想用这个,最小可能的代码是6个循环(彼此内部)
…他知道怎么做,只是需要“很长时间”-因为他在创建排列,然后删除重复项以进行组合-在这里他可以先进行组合,谢谢你的回答,但这不是我想要的。首先,
数量是我预先定义的,所以我会确保它符合所有条件(对不起,我应该在我的问题中提出这个)还有,其他人说,我已经知道创建6个循环。这太长了,所以我想优化它。谢谢你的回答。但是,这不是我想要的。它在我为你提供的简化场景中工作。除了在我的真实代码中,它不是一个简单的
+
操作。这是另一个复杂的公式,我需要Oduce会产生许多不同的结果。我正在寻找一种方法,使您仍然使用
进行
循环,但只是以高度优化的方式method@AniketG好的,在这种情况下,我需要更多关于这个复杂公式的信息?好吧,假设有2x2网格。每个框都有一个类似
{value:20;修饰符:{left:0,right:0,over:33,under:0}}
(33将是33%,或者在公式中转换为0.33)。这基本上意味着一个框的值是20,而它上面的框将多33%,或者
value*1.33
。(很抱歉,读完后,我意识到这有多么令人困惑。我将尝试向您提供一张图片,演示我刚才制作的谷歌文档:。它为您提供了一个输入和预期输出you@AniketG这看起来与我们正在讨论的问题非常不同。您可以将其作为新问题添加(可能会删除此问题)并解释每个键在每个框的JSON中代表的内容。注释不用于扩展讨论;此对话已完成。