• 1340-逆矩阵问题


    描述

     

    给定2 个n×n矩阵a 和b,试设计一个判定a 和b 是否互逆的蒙特卡罗算法,算法的计算时间应为O(n2)。设计一个蒙特卡罗算法,对于给定的矩阵a和b,判定其是否互逆。

    输入

     

    输入的第一行有1个正整数n,表示矩阵a和b 为n×n矩阵。接下来的2n行,每行有n个实数,分别表示矩阵a和b 中的元素。

    输出

    矩阵a 和b 互逆则输出YES,否则输出NO。

    样例输入

    3

    1 2 3

    2 2 3

    3 3 3


    -1 1 0

    1 -2 1

    0 1 -0.666667

    样例输出

    YES

    #include<stdio.h>
    #include<math.h>
    #define N 20
    int main()
    {
        //freopen("a.txt","r",stdin);
        float a[N][N],b[N][N],c[N][N]={0};
        int n,i,j,k,f;
        scanf("%d",&n);
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                scanf("%f",&a[i][j]);
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                scanf("%f",&b[i][j]);
        for(i=0;i<n;i++)     
            for(j=0;j<n;j++)      
                for(k=0;k<n;k++)       
                    c[i][j]+=a[i][k]*b[k][j];
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                f=1;
                if(i!=j) 
                {
                    if(fabs(c[i][j])<=0.00001) f=0;
                }
                else 
                {
                    if(fabs(c[i][j]-1)<=0.00001) f=0;
                }
            }
        }
        if(f==1) printf("NO
    ");
            else printf("YES
    ");
        return 0;
    }
    

      

  • 相关阅读:
    0317复利计算的回顾与总结
    0518 Scrum 项目 5.0
    0517 Scrum 项目4.0
    0512 Scrum 项目3.0
    实验三 进程调度模拟程序
    0505 Scrum 项目1.0
    0502团队项目 SCRUM团队成立
    0428 团队项目2.0
    0422团队项目
    实验二 作业调度模拟程序
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3437046.html
Copyright © 2020-2023  润新知