• 可逆矩阵生成


    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main()
    {
    	freopen("matrix.txt","w",stdout);
    	int A[16][16],B[16][16],C[16][16];
    	memset(A,0,sizeof(A));
    	memset(B,0,sizeof(B));
    	memset(C,0,sizeof(C));
    	for (int i=0;i<16;i++)
    	{
    		A[i][i]=1;
    		B[i][i]=1;
    	}
    	for (int i=0;i<5626596;i++) rand();
    	int opa[10000],opb[10000],opc[10000];
    	for (int i=0;i<100;i++)
    	{
    		opa[i]=rand()%16;
    		opb[i]=rand()%16;
    		if (opa[i]==opb[i]) continue;
    		opc[i]=rand()%11-5;
    		if (opc[i]==0) continue;
    		for (int j=0;j<16;j++)
    			A[opa[i]][j]+=A[opb[i]][j]*opc[i];
    	}
    	for (int i=0;i<16;i++)
    	{
    		for (int j=0;j<16;j++)
    			printf("%d,",A[i][j]);
    		printf("
    ");
    	}
    	printf("=============================================
    ");
    	for (int i=99;i>=0;i--)
    	{
    		if (opc[i]==0 || opa[i]==opb[i]) continue;
    		for (int j=0;j<16;j++)
    			B[opa[i]][j]-=B[opb[i]][j]*opc[i];
    	}
    	for (int i=0;i<16;i++)
    	{
    		for (int j=0;j<16;j++)
    			printf("%d,",B[i][j]);
    		printf("
    ");
    	}
    	printf("=============================================
    ");
    	for (int i=0;i<16;i++)
    		for (int j=0;j<16;j++)
    			for (int k=0;k<16;k++)
    				C[i][j]+=A[i][k]*B[k][j];
    	for (int i=0;i<16;i++)
    	{
    		for (int j=0;j<16;j++)
    			printf("%d,",C[i][j]);
    		printf("
    ");
    	}
    	printf("=============================================
    ");
    	fclose(stdout);
    	return 0;
    }
    

      

  • 相关阅读:
    C# Volatile
    C#索引器
    04Prism WPF 入门实战 Module
    No module named '_bz2'
    pandas day01
    实例讲解虚拟机3种网络模式(桥接、nat、Hostonly)
    asp.net 截屏 截取web页面
    c# winform 截图 网页
    delphi AddObject 用法
    DBGrid 更变数据内容显示
  • 原文地址:https://www.cnblogs.com/dramstadt/p/5777868.html
Copyright © 2020-2023  润新知