zoukankan      html  css  js  c++  java
  • 可逆矩阵生成

    #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;
    }
    

      

  • 相关阅读:
    Common Element in Two Sorted Sets
    Nearest Points on a Plane
    Influencer Finder
    Range of Intervals
    *Common characters
    自定义栈 和装箱,拆箱
    1.Vector(同步)和ArrayList(异步)异同
    STL中的迭代器的使用
    如何优化limit?
    mysql五大引擎之间的区别和优劣之分
  • 原文地址:https://www.cnblogs.com/dramstadt/p/5777868.html
Copyright © 2011-2022 走看看