根据定义列表计算预定义组合的数量

时间:2011-05-10 17:34:49

标签: c# .net algorithm

这个问题,是这个问题的一个更具体的例子:

Tree algorithm implementation 是谁被其他用户询问。

我有三个不同的列表,每个列表都有一个预定义数量的元素(64),来自枚举

enum Values
            {
                G0,G1,G2,G3,G4,G5,G6,G7,G8,G9,G10
            }

列表:

List<Values> list1;
List<Values> list2;
List<Values> list3;

它们上的值可以随机生成:

//for each list    
Random rand = new Random();
for(int i=1; i<=64; i++) listN.Add((Values)rand.Next(1,12));

我还有一个名为:

的结构
struct ValuesCombination
        {
            List<Values> Combination { get; set; }
        }

用于存储所有相关组合(使用list1list2list3中的符号生成

我还有一个列表,其中包含所有可能的组合:

List<ValuesCombination> combinations;

一些组合示例:

combinations.Add(new ValuesCombination(){ Values.G0, Values.G0, Values.G0}); //#comb1
combinations.Add(new ValuesCombination(){ Values.G0, Values.G0});//#comb2
combinations.Add(new ValuesCombination(){ Values.G1, Values.G1});//#comb3
combinations.Add(new ValuesCombination(){ Values.G2, Values.G2});//#comb4

组合长度为2或3。

来自#comb1的{​​{1}},来自G0的{​​{1}}和来自list1的{​​{1}}符合<G0, 但list2来自G0list3来自#comb2以及任何G0来自list1来自{G0,我感到满意1}}

我需要什么?

根据我的组合列表,我需要计算此列表中每个组合的发生次数,从每个列表中获取一个元素。

我不需要每个组合的公式,我需要很长的路,因为我选择一支铅笔并做到这一点。

list2

我需要这个以尽可能快的速度运行,因为有了这个,我想创建一个应用程序,在我更改每个列表的值时给出每个组合的概率。

我使用visual studio 2010和c#4.0。

0 个答案:

没有答案