一个算法问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:12:01
有五个数组,每个数组各有i个元素,请问如何在c#下实现将每个元素的组合方式罗列出来,谢谢。
这个问题是一个排列组合的问题,比如有三个数组a(1,2,3),b(1,2,3),c(1,2,3),最后罗列出的结果是(1,1,1)(1,1,2)(1,1,3)(1,2,1)(1,2,2)(1,2,3)(1,3,1)(1,3,2)(1,3,3)……(3,3,3),在有穷的数组可以想得通,可是一抽象到a(1...i),b(1...i),c(1...i)就不知道怎么做了。顺便问一下前辈们如何在C#中实现?我今天是用循环实现的,不过记得以前学的时候是用数组实现的(是上面a,b,c的排列组合的罗列)。唉,以前没有好好学都忘了。

排列组合?
C(n,k) = c(n-1,k-1) + c(n-1,k) ;
c(n,k) = n! / k! / (n-k)!
你这个是全排列问题吧
用深度优先搜索
左移动函数(元素一次向左移动)

就是每个数组选一个数,组成一个组合。
不就是五层嵌套循环么?

题目意思没听懂,什么组合方式?