Exemplo n.º 1
0
        public static List <int[]> getx2(int n, int kolv) // лучше список векторов, kolv - количество векторов
        {
            string temp;                                  // Переменная для приписывания слева нулей

            char[] temp2;
            //int kol = Convert.ToInt32(Math.Pow(2, n)); // 2^n
            List <int[]> getx2 = new List <int[]>();


            for (int i = 0; i < 16; i++)
            {
                int[] temp1 = new int[n]; // массив значений x1, x2, x3, x4 ...
                temp = (Convert.ToString(i, 2));
                if (temp.Length < n)
                {
                    do
                    {
                        temp = '0' + temp; // добавляем слева нулей
                    }while (temp.Length < n);
                }
                temp2 = temp.ToCharArray();
                for (int j = 0; j < n; j++)
                {
                    temp1[j] = Convert.ToInt32(temp2[j].ToString());
                }

                getx2.Add(temp1);
            }
            List <int[]> getx3 = new List <int[]>();

            int[]            curN; // массив для получения результатов
            PereborVariantov v = new PereborVariantov(kolv, 16);

            while (v.GetNext(out curN)) // получили в curN значения индексов
            {
                for (int i = 0; i < curN.Length; i++)
                {
                    getx3.Add(getx2[curN[i]]);
                }
                Console.WriteLine();
            }
            return(getx3);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            List <epoha> E = new List <epoha>();
            //work(true);
            //E = work(false);
            int trigger = 0;
            int kol     = 1;

            int[] curN; // массив для получения результатов
            do
            {
                int[]            vektor = new int[kol];
                PereborVariantov v      = new PereborVariantov(kol, 16);
                kol++;
                while (v.GetNext(out curN)) // получили в curN значения индексов
                {
                    for (int i = 0; i < curN.Length; i++)
                    {
                        vektor[i] = curN[i];
                        //perebor(false, curN[i]);
                        // Console.Write(curN[i] + "  ");
                    }
                    if (perebor(false, vektor) == true)
                    {
                        int tekkol = kol - 1; // Истинное значение количества
                        Console.WriteLine("Количество векторов: " + tekkol);
                        Console.Write("Номера векторов, на которых обучаем: ");
                        for (int i = 0; i < vektor.Length; i++)
                        {
                            Console.Write(vektor[i] + "  ");
                        }
                        Console.WriteLine();

                        trigger = 1;
                    }
                }
            } while (trigger != 1);
            //perebor(false);
            Console.ReadLine();
        }