C# 查找添加到其他数组中的项组合的所有可能的数组项组合
我有两个数组,有大量的项目,将近数百万个项目。我需要找出从数组1求和到数组2中单个元素或元素组合的所有元素组合。要组合的元素数是可变的。 例如:数组1{1,2,3,4,5,6,7,8,9} 阵列2{5,8,10} 将Array1中的1项与array2中的1项匹配,则 5=>5 8=>8 将Array1中的2个项目与array2中的1个项目组合在一起,得到 1,4=>5 2,3=>5 2,6=>8 1,7=>8 3,5=>8 6,4=>10 7,3=>10 8,2=>10 9,1=>10 将Array1中的2个项目与array2中的2个项目组合在一起可以得到 9,4=>5+8 8,5=>5+8 7,6=>5+8 9,6=>5+10 8,7=>5+10 依此类推,用于组合3个项目。 我需要写一个代码来实现这一点?有人已经面临过这样的问题吗?C# 查找添加到其他数组中的项组合的所有可能的数组项组合,c#,algorithm,C#,Algorithm,我有两个数组,有大量的项目,将近数百万个项目。我需要找出从数组1求和到数组2中单个元素或元素组合的所有元素组合。要组合的元素数是可变的。 例如:数组1{1,2,3,4,5,6,7,8,9} 阵列2{5,8,10} 将Array1中的1项与array2中的1项匹配,则 5=>5 8=>8 将Array1中的2个项目与array2中的1个项目组合在一起,得到 1,4=>5 2,3=>5 2,6=>8 1,7=>8 3,5=>8 6,4=>10 7,3=>10 8,2=>10 9,1=>10 将Arr
提前谢谢假设你有一个只有1000个元素的数组,你要考虑数组中的100个元素的每一个组合。您需要处理多少个组合 这是由组合数的公式给出的:
C = N!/(K!(N-K!)
其中N=1000,K=100
所以C=1000/100!*900! = 约6.4*10^139
这是一个非常大的数字,在任何合理的时间内都不可能完成所有这些组合。即使你每秒能处理一百万个组合,也需要比现在宇宙年龄多得多的时间
这只是您描述的问题的一个子集,而且您的数组有将近一百万个元素
因此,您的问题的答案是:这是不可能的。听起来是一个非常好的要求。你能行!