Beispiel #1
0
        override public void Evaluate(int SpreadMax)
        {
            if (FInput.IsChanged || FWithRepetition.IsChanged)
            {
                buffer.Clear();

                for (int i = 0; i < FInput.SliceCount; i++)
                {
                    buffer.Add(FInput[i]);
                }

                if (FWithRepetition[0])
                {
                    go = GenerateOption.WithRepetition;
                }
                else
                {
                    go = GenerateOption.WithoutRepetition;
                }

                Permutations <T> permutations = new Permutations <T>(buffer, go);

                FOutput.SliceCount = 0;
                foreach (IList <T> p in permutations)
                {
                    FOutput.AddRange(p);
                }

                FCount.SliceCount = 1;
                FCount[0]         = (int)permutations.Count;
            }
        }
Beispiel #2
0
        override public void Evaluate(int SpreadMax)
        {
            if (FInput.IsChanged || FSubsetElementCount.IsChanged || FWithRepetition.IsChanged)
            {
                buffer.Clear();

                for (int i = 0; i < FInput.SliceCount; i++)
                {
                    buffer.Add(FInput[i]);
                }

                if (FWithRepetition[0])
                {
                    go = GenerateOption.WithRepetition;
                }
                else
                {
                    go = GenerateOption.WithoutRepetition;
                }

                //int lowerIndex = Math.Min(FSubsetElementCount[0], FInput.SliceCount);

                Variations <T> variations = new Variations <T>(buffer, FSubsetElementCount[0], go);

                FOutput.SliceCount = 0;
                foreach (IList <T> v in variations)
                {
                    FOutput.AddRange(v);
                }

                FCount.SliceCount = 1;
                FCount[0]         = (int)variations.Count;
            }
        }