⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 线性代数之行列式计算c语言实现.txt

📁 c语言的一些常见的算法以及思考和改进的文章,写的很不错,花费了很大的精力从网络了搜罗的,希望大家喜欢.
💻 TXT
字号:
线性代数之行列式计算C语言实现[原创] 
行列式定义为:
|a11  a12...a1n|
|a21  a22...a2n|=       ∑      (-1)t(j1j2...jn)a1j1a2j2...anjn,其中t(j1j2...jn)表示逆序数。
|......................|      j1j2...jn
|an1  an2...ann|

#define N 2

#i nclude <conio.h>

void init(int arr[])
{  /* to initiate the array*/
  int i;
  for(i=0;i<N;i++)
    arr[i]=i;
}

void initial(int A[N][N])
{

}

void output(int arr[])
{  /* to output the array*/
  int i;
  for(i=0;i<N;i++)
    printf("%4d",arr[i]);
  printf("\n");
}

void sort(int arr[],int start)
{ /*to resort the array from the position 'start' to end*/
   int i,j;
   for(i=start;i<N;i++)
     for(j=start;j<N-1;j++)
       if(arr[j]>arr[j+1])
       {
         int t=arr[j];
        arr[j]=arr[j+1];
        arr[j+1]=t;
       }
}

int next(int arr[])
{  /* to produce the next arrangemeng*/
  int i,j;
  int temp;
  for(i=N-2;i>=0;i--)
    if(arr[i]<arr[i+1])
      break;
  for(j=N-1;j>i;j--)
    if(arr[j]>arr[i])
      break;
  if(i<0||j<0)
    return;
  temp=arr[i];
  arr[i]=arr[j];
  arr[j]=temp;
  sort(arr,i+1);

}

long jiecheng(int n)
{ /* to compute n!=n*(n-1)*(n-2)....*2*1 */
  long result=1;
  while(n>0)
    result*=n--;
  return result;
}

int nixu(int a[])
{
    int i,j;
    int n=0;
    for(i=0;i<N-1;i++)
      for(j=i+1;j<N;j++)
         if(a[i]>a[j])
            n++;
    return n;
}

void main()
{
  int array[N];
  int A[N][N]={{5,6},{8,9}};
  int count;
  int i,j;
  int result=0,t=1;
  clrscr();
  init(array);
/*  initial(A);*/
  for(count=0;count<jiecheng(N);count++)
  {
    t=1;
    for(i=0;i<N;i++)
    {
      j=array[i];
      t=t*A[i][j];
    }
    if(nixu(array)%2==1)
       result+=-t;
    else
       result+=t;
    next(array);
  }
  printf("\nThe result is:\n%d",result);
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -