Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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
Math 生成素因子列表的所有可能因子组合的非递归算法_Math_Combinations_Prime Factoring - Fatal编程技术网

Math 生成素因子列表的所有可能因子组合的非递归算法

Math 生成素因子列表的所有可能因子组合的非递归算法,math,combinations,prime-factoring,Math,Combinations,Prime Factoring,假设我们有一些素数因子列表,比如A,B,C,D乘以等于整数n 并希望以非递归方式生成每一个因式分解组合,就像 [A, B, C, D] [(A*B), C, D] [(A*C),B,D] [(A*D),C,D] 。。。。及 [(A*B*C),D] 。。。发射型计算机断层扫描仪 在我们生成所有可能的组合之前,重复因子是可以的。主要关注的是算法的速度,因为我们希望尽可能多地使用它,比如100个基本因子 是否有一个好的/有效的算法,或库,或编程语言可以做到这一点。谢谢真的有100个主要因素吗?你

假设我们有一些素数因子列表,比如A,B,C,D乘以等于整数n

并希望以非递归方式生成每一个因式分解组合,就像

[A, B, C, D]
[(A*B), C, D]
[(A*C),B,D]
[(A*D),C,D]
。。。。及

[(A*B*C),D] 
。。。发射型计算机断层扫描仪 在我们生成所有可能的组合之前,重复因子是可以的。主要关注的是算法的速度,因为我们希望尽可能多地使用它,比如100个基本因子


是否有一个好的/有效的算法,或库,或编程语言可以做到这一点。谢谢

真的有100个主要因素吗?你计算出有多少种可能的组合了吗?(实际列举的太多了。)你想解决的实际问题是什么?另外:
[A*B,C*D]
是否为可能的输出组合?标记。不,我还没有计算出有多少种组合,也就是说,我知道这是很多,但可能会使用超级计算机,也许不会,但我想尝试一下。问题是生成给定因素列表的所有组合,我正在为一位数学研究人员开发这个程序。是的[AB,CD]是一种可能的输出组合。如果有100个不同的素因子,则这些因子有2**100个子集。这只包括形式[产品,剩余条款]的组合,而且您还有更多,因为您的组合中可能有多个产品。在这一点上,你已经远远超出了超级计算机的范围(甚至可能是未来的超级计算机),因此你可能需要考虑其他方法来解决潜在的问题,不管是什么,你的观点是正确的。也许那时我们只能做50或75个,但我们希望尽可能地去做,对于这个问题,没有办法生成所有的组合,而且算法越有效,我们应该能够做的因素就越多。编辑:我们也不需要保存每个组合,所以内存不是问题,只是生成每个组合的计算时间和速度。因此,如果你说的是不同的素数因子,那么你感兴趣的数字序列是OEIS序列,贝尔数的序列,它很重要。第25个钟号是4638590332299353;如果要每秒枚举10亿个分区,则需要大约150年的时间来枚举所有组合。因此,超过25个不同的主要因素可能是不现实的。:-)