Умножение матрицы на определитель - C#
Формулировка задачи:
Здравствуйте, помогите сделать программу которая умножает матрицу размерности M*N на её определитель. Я просмотрел предыдущие темы но я не понял как они сделаны, если можно по проще программу и желательно расписать чтобы можно было разобраться.
Смог написать программу матрицы только
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cons
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите n: ");
int n = int.Parse(Console.ReadLine());
Console.Write("Введите m: ");
int m = int.Parse(Console.ReadLine());
Console.WriteLine("Заполнение матрици:");
int[,] mas = new int[n, m];
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j)
{
mas[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
Console.WriteLine("Полученная матрица:");
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j)
{
Console.Write(mas[i, j] + "\t");
}
Console.WriteLine("\n");
}
Console.ReadKey();
}
}
}
очень срочно нужно
Решение задачи: «Умножение матрицы на определитель»
textual
Листинг программы
static int Op(int[,]A)
{
if (A.Length == 4)
return A [0, 0] * A [1, 1] - A [0, 1] * A [1, 0];
else
{
int s = 1;
int sop=0;
for (int i = 0; i < A.GetLength (0); i++)
{
sop += s * A [0, i] * Op(Minor (A, i));
s *= -1;
}
return sop;
}
}
static int[,] Minor(int[,]A,int S)
{
int I=0,J;
int[,] a = new int[A.GetLength(0) - 1, A.GetLength(1) - 1];
for (int i = 1; i < A.GetLength(0); i++)
{
J = 0;
for (int j = 0; j < A.GetLength (1); j++)
{
if (j != S)
{
a [I, J] = A [i, j];
J++;
}
}
I++;
}
return a;
}
public static void Main (string[] args)
{
Console.Write ("Размерность квадратной матрицы - ");
int n = int.Parse (Console.ReadLine ());
int[,] A = new int[n, n];
Random r = new Random ();
Console.WriteLine ("Матрица: ");
for (int i = 0; i < A.GetLength(0); i++)
{
for (int j = 0; j < A.GetLength (1); j++)
{
A [i, j] = r.Next (0, 9);Console.Write (A[i,j]+" ");
}
Console.WriteLine ();
}
int det=Op(A);
Console.WriteLine ("Определитель матрицы - "+det);
for (int i =0; i<A.GetLength(0);i++)
{
for (int j= 0;j<A.GetLength(1);j++)
{ A[i,j]*=det;Console.Write(A[i,j]+" ");}
Console.WriteLine();
}
Console.ReadKey ();
}