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); }
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(); }