У 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);
ОКЛН, ОКНЛ, ОЛКН, ОЛНК, ОНКЛ, ОНЛК,
КОЛН, КОНЛ, КНЛО, КНОЛ, КЛОН, КЛНО,
ЛОКН, ЛОНК, ЛНОК, ЛНКО, ЛКНО, ЛКОН,
НОКЛ, НОЛК, НЛОК, НЛКО, НКЛО, НКОЛ
Если Катя вторая, то вариантов всего 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();
}
(Это может быть,я точно незнаю)