矩阵乘法测试

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(使用前将#替换为@)

矩阵乘法测试 的相关文章

  • Python 绘制散点图

    span class token keyword from span sklearn span class token punctuation span cluster span class token keyword import spa
  • springMVC之配置(context:component-scan) 详解

    lt context component scan base package 61 34 com wjx betalot 34 lt 扫描的基本包路径 gt annotation config 61 34 true 34 lt 是否激活属性
  • Android开发之design库学习

    Internal ForegroundLinearLayout 分割线性能优化 接触第一个类就是他了 xff0c 瞬间get到一点关于性能优化的 xff0c LinearLayout的divider相关属性 xff0c 平时开发需要分割线个
  • Framework学习(六)应用程序进程启动过程

    概述 上篇文章Framework学习 xff08 五 xff09 应用程序启动过程我们讲解了应用程序启动过程 xff0c 但是还有一个遗留知识点 xff0c 那就是应用程序进程的启动 我们知道应用程序启动之前需要保证应用程序的进程先启动 x
  • VUE 项目引入Sass后启动报错 TypeError [ERR_INVALID_ARG_TYPE]: The “path“ argument must be of type string 解决方法

    vue文件里面使用lang 61 34 scss 34 xff0c 解决方法是 xff1a 肯定要安装sass loader和node sass 报错 xff1a TypeError ERR INVALID ARG TYPE The 34
  • Android中获取应用程序(包)的大小-----PackageManager的使用(二) .

    通过第一部分 lt lt Android中获取应用程序 包 的信息 PackageManager的使用 一 gt gt 的介绍 xff0c 对PackageManager以及 AndroidManife xml定义的节点信息类XXXInfo
  • 学习Linux必备书籍推荐

    xfeff xfeff 鸟哥的私房菜 xff08 第3版 xff09 xff0c 鸟哥著 xff1a 这本书内容丰富全面 xff0c 基本概念的讲解非常细致 xff0c 深入浅出 xff0c 各种功能和命令的介绍都配以大量的实例操作和详尽的
  • 使用gparted工具扩充vmware UBUNTU虚拟机磁盘空间

    虚拟机器用了一段时间之后 xff0c 由于安装的软件越来越多 xff0c 慢慢的磁盘空间就不够用了 xff0c 需要扩充空间 网上有很多方法 xff0c 但个人认为对虚拟机来说最好的方法就是用gparted工具进行空间扩展 xff0c 非常
  • 2022年打工人转行实录!你后悔转行了吗?

    2022年 xff0c 有许多年轻人在寻求 转行 根据 2022Q1中高端人才就业趋势大数据报告 xff0c 今年一季度有55 87 的职场人有跳槽计划 xff0c 而这之中 xff0c 有65 34 的职场人选择跨行业跳槽 在各种社交平台
  • 速看!TIOBE12月编程语言排行榜,第一名太牛啦!

    全球知名TIOBE编程语言社区发布了2022年12月的编程语言排行榜 我们一起来看看 xff0c 本月榜单中有哪些值得注意的新变化吧 xff01 自去年 10 月登顶后 xff0c Python 至今仍牢牢占据榜一大哥的位置 C 43 43
  • 使用MFC的CDC类绘制三维坐标系及球面函数

    系列链接 使用MFC的CDC类绘制二维坐标系及正余弦函数 源码 使用MFC的CDC类绘制三维坐标系及球面函数 源码 概述 本文使用MFC的CDC类绘制三维坐标系及球面函数 首先计算推导出三维坐标在二维平面显示的坐标变换方程 xff08 使用
  • Android R系统Fingerprint指纹流程归纳

    孩子长大 xff0c 倘无才能 xff0c 可寻点小事情过活 xff0c 万不可做空头文学家或美术家 鲁迅 1 Android R中framework中需要新的配置项才会在SetupWizard中启动Settings的BiometricEn
  • Python爬虫深造篇(一)——多线程网页爬取

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

    在正常情况下 xff0c 生产者产生并发送一条消息然后被交换器正确路由到某个队列中 但是如果一条消息不能被正确路由到某个队列时 xff0c 那么这条消息该何去何从呢 xff1f RabbitMQ提供以下几个处理方案 xff1a xff08
  • Mysql 10061 Unknown error

    一 问题 二 解决方法 1 打开任务管理器找到Mysql服务 2 右键 打开服务 3 找到Mysql 启动类型设置为 自动 4 启动服务 5 启动成功后再次尝试链接 xff0c 数据库成功打开
  • Thonny,Python小白最理想的IDE

    目录 前言 Thonny的特点 安装使用 下载安装 运行 xff1a 第一行代码 Hello xff0c World 前言 很多伙伴在学习我们Python基础语法交互的时候 xff0c 问道Python怎么安装 xff1f 我们开发的Pyt
  • 【超详细】【ubunbu 22.04】 手把手教你安装nvidia驱动,有手就行,隔壁家的老太太都能安装

    目录 前言 一 英伟达官网下载驱动 二 更新软件列表和安装必要软件 依赖 三 进入tty模式 1 关闭图形界面进入tty模式 2 进入tty以后需要输入用户名和密码登录 3 禁用X window服务 四 安装驱动 五 返回图形界面 六 可能
  • 全志a20 fastboot烧写system.img时出现 data too large 错误

    在调试 全志a20的过程中 xff0c 使用fastboot烧写system image出现 xff1a data too large 错误 解决方法 xff1a 修改lichee u boot include configs sun7i
  • linux系统中rpm与Yum软件仓库

    rpm的作用 xff1a 在没有rpm软件管理之前我们在安装 升级 卸载服务程序时要考虑到其他程序 库的依赖关系 xff0c 所以在进行安装 校验 卸载 升级等操作时的难度就非常之大 rpm机制则为就是为了解决这些问题而设计的 xff0c
  • 老杜带你从零入门MyBatis,学MyBatis看这篇就够了!

    MyBatis本是apache的一个开源项目iBatis xff0c 2010年这个项目由apache software foundation迁移到了google code xff0c 并且改名为MyBatis 2013年11月迁移到Git

随机推荐

  • Docker全家桶入门到进阶教程,Docker快速上手

    开发 运维互掐 开发与测试和运维间的矛盾 xff0c 主要是由于环境的不同而引发的 如果能将开发人员使用 的环境交给测试与运维使用 xff0c 这些问题就都能解决 DevOps DevOps 是一种思想 xff0c 是一种管理模式 xff0
  • 2023最新动力节点MybatisPlus笔记——第一章入门篇

    第一章 入门篇 2023最新动力节点MybatisPlus笔记 第一章入门篇 第二章 基础篇 2023最新动力节点MybatisPlus笔记 第二章基础篇 第三章 进阶篇 2023最新动力节点MybatisPlus笔记 第三章进阶篇 1 M
  • 2023最新动力节点MybatisPlus笔记——第三章进阶篇

    3 进阶篇 3 1 映射 学习过Mybatis的同学应该知道 xff0c Mybatis框架之所以能够简化数据库操作 xff0c 是因为他内部的映射机制 xff0c 通过自动映射 xff0c 进行数据的封装 xff0c 我们只要符合映射规则
  • 2023最新版动力节点MybatisPlus实战教程——高级篇

    来自B站动力节点最新版的MybatisPlus教程 xff0c 整理了笔记 第四章高级篇 4 高级篇 4 1 主键策略 4 1 1 主键生成策略介绍 首先大家先要知道什么是主键 xff0c 主键的作用就是唯一标识 xff0c 我们可以通过这
  • 一体机重装系统时不小心分区了,别的盘的数据怎样恢复

    全盘格式化是由于在重装系统时 xff0c 选择了错误的选项导致全盘分区了 xff0c 装完之后文件全部丢失 想要恢复丢失盘的文件 xff0c 需要注意 xff0c 别往现在的这个盘存入新的文件 xff08 因为现在存入的文件可能会覆盖原先D
  • DDGCN: A Dynamic Directed Graph Convolutional Network for Action Recognition

    Introduction 作者认为解决如下两个问题能有效增强GCN在动作识别中的能力 xff1a 1 在人类骨骼的不同部位中有着时空关联性 xff0c 但这些关联性是动态的 xff0c 而且在时空域中不同的动作关联性也是不同的 标椎卷积操作
  • 2023最新版动力节点MybatisPlus实战教程——拓展篇

    5 拓展篇 5 1 逻辑删除 前面我们完成了基本的增删改查操作 xff0c 但是对于删除操作来说 xff0c 我们思考一个问题 xff0c 在实际开发中我们真的会将数据完成从数据库中删除掉么 xff1f 当然是不会的 xff0c 这里我们举
  • 计算机的存储器层次结构以及一二三级缓存的区别

    hibernate 一级缓存和二级缓存的区别 xff1a 主要的不同是它们的作用范围不同 一级缓存是session级别的 也就是只有在同一个session里缓存才起作用 xff0c 当这个session关闭后这个缓存就不存在了 而二级缓存是
  • QWebEngine登录网页并获取数据

    利用QWebEngine登录需要账号密码的网页并获取想要的数据 xff0c 以某游戏网站为例 xff0c 此网站每隔一段时间会更新某些数据 1 设置QWebEngineView的url QWebEngineView setUrl 在QWeb
  • PyCharm 提示 unresolved reference

    PyCharm 外部模块导入提示 unresolved reference 解决方法是把文件夹设置为根目录 1 在项目上单击右键 gt Mark Directory as gt Sources Root 2 再次点击 xff0c 红色警告消
  • python 安装twisted库时提示缺少VC++ 14.0 (解决方案)

    说明 xff1a 出现这种问题 xff0c 不需要去安装VC 43 43 14 0 xff0c 只需要去python库上下载相应的包安装即可 1 在python库中下载twisted相应的包 xff08 whl文件 xff09 网址 xff
  • 虚拟机中ubuntu下make menuconfig命令缺少ncurses解决方法

    在台式机上按着教程弄编译内核什么的 xff0c 发现同样是RHEL5 xff0c 我的make menuconfig就缺失ncurses 然后我装的RHEL5还连不上网了 xff0c 那怎么办 xff0c 没法传东西 xff0c vmtoo
  • HDU 1215 七夕节(约数之和)

    七夕节 Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 39837 Accepted Submiss
  • 为什么无穷大总是0x3f3f3f3f?

    转自 http aikilis tk 如果问题中各数据的范围明确 xff0c 那么无穷大的设定不是问题 xff0c 在不明确的情况下 xff0c 很多程序 员都取0x7fffffff作为无穷大 xff0c 因为这是32 bit int的最大
  • CSU 1333 & Uva 12661 Funny Car Racing【最短路变形+spfa算法,链式前向星建图】

    Funny Car Racing Memory Limit 131072KB64bit IO Format lld amp llu Status Description There is a funny car racing in a ci
  • 根据Oracle数据库scott模式下的scott.emp表和dept表,完成下列操作.

    题目要求 xff1a 根据Oracle数据库scott模式下的emp表和dept表 xff0c 完成下列操作 将scott用户解锁 xff1a alter user scott account unlock scott的初始密码是tiger
  • 通过CSS选择器查找元素

    通过CSS选择器定位元素 以Google主页的搜索按钮为例 xff0c 其中HTML代码如下 xff1a lt input value 61 34 Google 搜索 34 jsaction 61 34 sf chk 34 name 61
  • STL-set (集合)之删除元素

    set概述 和vector list不同 xff0c set map都是关联式容器 set内部是基于红黑树实现的 插入和删除操作效率较高 xff0c 因为只需要修改相关指针而不用进行数据的移动 在进行数据删除操作后 xff0c 迭代器会不会
  • 经典算法之一:快速排序

    快速排序由于排序效率在同为O N logN 的几种排序方法中效率较高 xff0c 因此经常被采用 xff0c 再加上快速排序思想 分治法也确实实用 xff0c 因此很多软件公司的笔试面试 xff0c 包括像腾讯 xff0c 微软等知名IT公
  • 矩阵乘法测试

    对于时间的函数 gettimeofday 函数使用方法 xff1a http blog csdn net hurmishine article details 60326345 矩阵乘法测试 xff1a 代码 xff1a 1 为了试验简单