: 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);
У 4 девочек ровно 4! = 24 варианта очередности. Перебор: ОКЛН, ОКНЛ, ОЛКН, ОЛНК, ОНКЛ, ОНЛК, КОЛН, КОНЛ, КНЛО, КНОЛ, КЛОН, КЛНО, ЛОКН, ЛОНК, ЛНОК, ЛНКО, ЛКНО, ЛКОН, НОКЛ, НОЛК, НЛОК, НЛКО, НКЛО, НКОЛ Если Катя вторая, то вариантов всего 6: ОКЛН, ОКНЛ, НКОЛ, НКЛО, ЛКНО, ЛКОН Если Оля последняя, то вариантов тоже 6: КЛНО, КНЛО, ЛНКО, ЛКНО, НКЛО, НЛКО. Если Надя не последняя, то вариантов 18: ОКНЛ, ОЛНК, ОНКЛ, ОНЛК, КОНЛ, КНЛО, КНОЛ, КЛНО, ЛОНК, ЛНОК, ЛНКО, ЛКНО, НОКЛ, НОЛК, НЛОК, НЛКО, НКЛО, НКОЛ Если Лена не первая, то вариантов тоже 18: ОКЛН, ОКНЛ, ОЛКН, ОЛНК, ОНКЛ, ОНЛК, КОЛН, КОНЛ, КНЛО, КНОЛ, КЛОН, КЛНО, НОКЛ, НОЛК, НЛОК, НЛКО, НКЛО, НКОЛ Если Оля и Катя выступают друг за другом, то вариантов 12. 6 вариантов, когда Оля выступает перед Катей: ОКЛН, ОКНЛ, ЛОКН, НОКЛ, НЛОК, ЛНОК И 6 вариантов, когда Оля выступает после Кати: КОЛН, КОНЛ, ЛКОН, НКОЛ, НЛКО, ЛНКО.
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);
Print(matrix);
ToTriangle(matrix);
Print(matrix);
Console.ReadKey();
}
(Это может быть,я точно незнаю)
ОКЛН, ОКНЛ, ОЛКН, ОЛНК, ОНКЛ, ОНЛК,
КОЛН, КОНЛ, КНЛО, КНОЛ, КЛОН, КЛНО,
ЛОКН, ЛОНК, ЛНОК, ЛНКО, ЛКНО, ЛКОН,
НОКЛ, НОЛК, НЛОК, НЛКО, НКЛО, НКОЛ
Если Катя вторая, то вариантов всего 6:
ОКЛН, ОКНЛ, НКОЛ, НКЛО, ЛКНО, ЛКОН
Если Оля последняя, то вариантов тоже 6:
КЛНО, КНЛО, ЛНКО, ЛКНО, НКЛО, НЛКО.
Если Надя не последняя, то вариантов 18:
ОКНЛ, ОЛНК, ОНКЛ, ОНЛК, КОНЛ, КНЛО,
КНОЛ, КЛНО, ЛОНК, ЛНОК, ЛНКО, ЛКНО,
НОКЛ, НОЛК, НЛОК, НЛКО, НКЛО, НКОЛ
Если Лена не первая, то вариантов тоже 18:
ОКЛН, ОКНЛ, ОЛКН, ОЛНК, ОНКЛ, ОНЛК,
КОЛН, КОНЛ, КНЛО, КНОЛ, КЛОН, КЛНО,
НОКЛ, НОЛК, НЛОК, НЛКО, НКЛО, НКОЛ
Если Оля и Катя выступают друг за другом, то вариантов 12.
6 вариантов, когда Оля выступает перед Катей:
ОКЛН, ОКНЛ, ЛОКН, НОКЛ, НЛОК, ЛНОК
И 6 вариантов, когда Оля выступает после Кати:
КОЛН, КОНЛ, ЛКОН, НКОЛ, НЛКО, ЛНКО.