矩阵乘法测试

2023-05-16



对于时间的函数 gettimeofday 函数使用方法:http://blog.csdn.net/hurmishine/article/details/60326345


矩阵乘法测试:


代码:

/**
1.为了试验简单,两个测试矩阵均为n*n;
当然结果也为n*n的矩阵,
2.为了使结果不超int,原矩阵元素均为0-9的随机数
也输出了结果的前10行10列
3.为了调试简单,用了do while循环省去不断运行的麻烦
按回车等键可继续测试,输入'0'则停止程序
*/

#include <stdio.h>
#include <time.h>//计算时间
#include <string.h>
#include <sys/time.h>//gettimeofday
#include <stdlib.h>//Linux下面要加这句!
#define maxn 2000

int a[maxn][maxn];
int b[maxn][maxn];
int c[maxn][maxn];
//初始化矩阵,每个元素均为0-10的随机数
void Init(int n,int a[][n])
{
    int i,j;
    srand(time(NULL));//随机种子
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            a[i][j]= rand()%10;
}
//输出矩阵信息
void Print(int n,int a[][n])
{
    int i,j;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            printf("%d\t",a[i][j]);
        printf("\n");
    }
    printf("\n");
}
int main()
{
    char ch;
    //为了方便测试用了do while 循环,
    //输入0 停止
    do
    {
        Init(maxn,a);//初始化矩阵
        Init(maxn,b);
        //Print(maxn/100,a);
        //Print(maxn/100,b);
        int i,j,k;
        memset(c,0,sizeof(c));//初始化结果矩阵
        time_t tt0=clock();
        //clock()计算的是CPU执行耗时
        //这个函数返回从"开启这个程序进程"到"程序中调用clock()函数"
        //时之间的CPU时钟计时单元(clock tick)数,
        //在MSDN中称之为挂钟时间(wal-clock)。
        //------------------
        struct timeval tim;
        gettimeofday(&tim,NULL);
        double t1 = tim.tv_sec +(tim.tv_usec / 1000000.0);
        for(i=0; i<maxn; i++)
        {
            for(j=0; j<maxn; j++)
            {
                for(k=0; k<maxn; k++)
                    c[i][j]+=a[i][k]*b[k][j];
            }
        }
        time_t tt1=clock();


        gettimeofday(&tim,NULL);
        //注意强制类型转换
        printf("CPU 时间:%.6lf seconds\n",(double)(tt1-tt0)/CLOCKS_PER_SEC);
        double t2=tim.tv_sec+(tim.tv_usec/1000000.0);
        printf("实际时间:%.6lf seconds \n", t2-t1);

        //为防止结果溢出,输出结果钱10行10列
        Print(10,c);
        printf("按'0'结束,其余键继续。。。");
        ch=getchar();
        system("cls");
    }
    while(ch!='0');

    return 0;
}




样例输出:


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

矩阵乘法测试 的相关文章

  • 一个基于 C# 的简单的线程安全日志模块

    一个基于 C 的简单的线程安全日志模块 xff0c 它使用生产者 消费者模式 xff0c 可以在 NET Framework 和 Net Core 中使用 Github 地址 xff1a LogConsumer 使用 将 LogConsum
  • Python爬虫深造篇(一)——多线程网页爬取

    一 前情提要 相信来看这篇深造爬虫文章的同学 xff0c 大部分已经对爬虫有不错的了解了 xff0c 也在之前已经写过不少爬虫了 xff0c 但我猜爬取的数据量都较小 xff0c 因此没有过多的关注爬虫的爬取效率 这里我想问问当我们要爬取的
  • c++多态和虚函数心得

    多态性 xff08 Polymorphism xff09 是指一个名字 xff0c 多种语义 xff1b 或界面相同 xff0c 多种实现 重载函数是多态性的一种简单形式 虚函数允许函数调用与函数体的联系在运行时才进行 xff0c 称为动态
  • IntelliJ IDEA 代码检查规范QAPlug

    转自 xff1a http blog csdn net jizi7618937 article details 51500725 Avoid Array Loops 数组之间的拷贝使用System arrayCopy更加高效 byte Re
  • linux系统中rpm与Yum软件仓库

    rpm的作用 xff1a 在没有rpm软件管理之前我们在安装 升级 卸载服务程序时要考虑到其他程序 库的依赖关系 xff0c 所以在进行安装 校验 卸载 升级等操作时的难度就非常之大 rpm机制则为就是为了解决这些问题而设计的 xff0c
  • Nokov使用说明(Windows系统)

    Nokov使用说明 第一步 镜头硬件调节1 连接镜头 xff0c 打开Seeker软件 xff08 以下简称软件 xff09 2 放置标定框3 调节镜头4 调焦1 xff09 调节后环 xff1a 光圈调到最大2 xff09 调节前环 xf
  • 计算机的存储器层次结构以及一二三级缓存的区别

    hibernate 一级缓存和二级缓存的区别 xff1a 主要的不同是它们的作用范围不同 一级缓存是session级别的 也就是只有在同一个session里缓存才起作用 xff0c 当这个session关闭后这个缓存就不存在了 而二级缓存是
  • Mac安装java反编译工具JD-GUI提示需要安装jdk1.8+解决方案

    一 下载 Java Decompiler JD Java Decompiler http java decompiler github io 二 当打开JD GUI软件时候 xff0c 会弹出以下错误 xff0c 见图示 xff1a 而自己
  • Docker命令详细说明

    Docker命令详细说明 docker help 查看docker帮助 使用方法 xff1a docker 命令选项 命令 参数 docker dameon help docker help v version config 61 dock
  • udev 规则文件介绍

    1 配置文件 udev的配置文件位于 etc udev 和 lib udev xff08 开头的是注释 xff09 udev 的主配置文件是 etc udev udev conf 它包含一套变量 xff0c 允许用户修改 udev 默认值
  • ATSAMV7Xult板卡调试Nuttx系统------NuttX模拟器SIM的的编译和调试

    NUTTX的模拟环境的编译和调试 xff1a 由于开发团队硬件资源紧张 xff0c 因此大家调试时可以使用模拟器来进行一些任务的开发和调试 参考 nuttx 7 17 configs sim readme txt介绍的操作方法 xff1a
  • C语言中,int、char、float、double各占多少字节

    https zhidao baidu com question 619738052995674092 html 只是数据类型不同而已 xff0c 在c语言中数据类型不同 xff0c 占的内存字节数不同 xff0c 所以表示数据大小不一样 i
  • 第一天做LeetCode 19.1.10

    为了备战蓝桥杯 xff0c 今天第一天做LeetCode xff0c 就做了一道题花了半个小时 xff0c 期间有各种错误 xff0c 深深的感受到自己连菜鸡都算不上 题目 xff1a 给定一个数组nums xff0c 与目标值target
  • 麻将通用胡牌算法详解(拆解法)

    1 背景 前几天刚好有项目需要胡牌算法 xff0c 查阅资料后 xff0c 大部分胡牌算法的博客都是只讲原理 xff0c 实现太过简单 xff0c 且没有给出测试用例 然后就有了下面的这个胡牌算法 xff0c 我将从算法原理和算法实现两部分
  • Java并发编程笔记之ThreadLocal内存泄漏探究

    转发 xff1a Java并发编程笔记之ThreadLocal内存泄漏探究 使用 ThreadLocal 不当可能会导致内存泄露 xff0c 是什么原因导致的内存泄漏呢 xff1f 我们首先看一个例子 xff0c 代码如下 xff1a Cr
  • 学长们的求职血泪史(C/C++/JAVA)

    2014届校招基本慢慢收尾 xff0c 现特将本人和小伙伴们的求职血泪史记录 xff0c 并且推荐一些书籍供学弟学妹们参考 xff0c 以壮我皇家理工之名 首先得感谢百度的师兄 xff0c 他教会了我很多东西 xff0c 致以很深的谢意 另
  • [海康威视]-超脑设备的 以图搜图 功能C#实现

    以图搜图意思就是海康超脑设备存储着人脸照片 xff0c 你用一张人脸照片去比对 xff0c 比对找个这个人的信息返回给你们 xff0c 识图拿代码
  • C++Builder PID控制一阶惯性系统

    ifndef Unit1H define Unit1H include lt Classes hpp gt include lt Controls hpp gt include lt StdCtrls hpp gt include lt F
  • kubernetes学习记录(14)——使用CustomResourceDefinitions(CRD)扩展Kubernetes API

    工作中即将开始写operator xff0c 先提前学习一下相关的知识 目前我们的kubernetes集群版本为1 15 0 xff0c 故参考文档为官方文档 Extend the Kubernetes API with CustomRes
  • kubernetes学习记录(15)——使用operator-sdk开发operator

    operator sdk环境搭建 我的电脑环境为windows xff0c 安装operator sdk需要自己编译构建二进制文件 参考官方文档Compile and install from master 官方给的Prerequisite

随机推荐