: static void ToTriangle(double[,] matrix) { double n = matrix.GetLength(0); for (int i = 0; i < n - 1; i++) for (int j = i + 1; j < n; j++) { double koef = matrix[j, i] / matrix[i, i]; for (int k = i; k < n; k++) matrix[j, k] -= matrix[i, k] * koef; } } static void Print(double[,] matrix) { for (int i = 0; i < matrix.GetLength(0); i++) { for (int j = 0; j < matrix.GetLength(0); j++) Console.Write("{0:0.0}\t",matrix[i, j]); Console.WriteLine(); } Console.WriteLine(); } static void Main() { double[,] matrix = new double[3, 3];
var random = new Random(); for (int i = 0; i < matrix.GetLength(0); i++) for (int j = 0; j < matrix.GetLength(0); j++) matrix[i, j] = random.Next(1, 9);
Возможно, можно сделать все проще, но моя идея такая: 1) Переливаем из 3-го стакана (Самого большого) в 1-й (3л.) Теперь у нас все так: 1 - 3л., 2 - 0 л., 3 - 17 л. 2) Переливаем из 1-го во второй, получаем: 1 - 0 л., 2 - 3 л., 3 - 17 л. 3) Снова из самого большого (3) льём в самый маленький (1), получаем: 1 - 3л, 2 - 3л, 3 - 14 л. 4) Из 1 льём во второй, получаем: 1 - 1л (Т.к. второй полностью наполнен), 2 - 5 л., 3 - 14л. 5) Выливаем из 2 в 3. Затем льём из 1 во второй, получаем: 1 - 0л, 2-1л, 3- 19 л. 6) Из 3 льём в 1, из 1 во второй. Получаем: 1 - 0л, 2 - 4л, 3 - 16л.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку