矩阵乘法 (Size*Size)

class mat{const static int Size=10;unsigned long long a[Size][Size];friend::mat operator*(const mat&a, const mat&b){mat c;for(int i=0;i<Size;i++)for(int j=0;j<Size;j++){unsigned long long *temp=&c.a[i][j]; *temp=0;for(int k=0;k<Size;k++) *temp+=a.a[i][k]*b.a[k][j];}return c;}
};

Fibonacci 矩阵还可以这样写

class fibmat{long long a,b,c;friend::fibmat operator*(const fibmat&a, const fibmat&b){fibmat c;c.a=a.a*b.a+a.b*b.b;c.b=a.a*b.b+a.b*b.c;c.c=a.b*b.b+a.c*b.c;return c;}
};

快速幂

template <class type>
type power(type a,type b) // 要求b>0
{type t=a; b--;for(;b;b>>=1)(b&1)?t=t*a:0;a=a*a;return t;
}
template <class Type>
Type power(Type a,int b)
{Type t=Type::ZERO; for(;b;b>>=1)(b&1)?t=t*a:0;a=a*a;return t;
}

对应的矩阵构造

class mat{public:const static int Size=10;static const mat ZERO;unsigned long long a[Size][Size];mat(int x=0){ memset(a,0,sizeof(a));if(x==-1)for(int i=0;i<Size;i++)a[i][i]=1;}friend::mat operator*(const mat&a, const mat&b){mat c;for(int i=0;i<Size;i++)for(int j=0;j<Size;j++){unsigned long long *temp=&c.a[i][j]; *temp=0;for(int k=0;k<Size;k++) *temp+=a.a[i][k]*b.a[k][j];}return c;}
};const mat mat::ZERO=mat(-1);

数据类快速幂

template <class Type>
Type Power(Type a,int b)
{Type t = 1;for(;b;b>>=1)(b&1)?t=t*a:0;a=a*a;return t;
}

这样就组成一个头文件了。

Code for fun (1)相关推荐

  1. 如何在团队中做好Code Review

    一.Code Review的好处 想要做好Code Review,必须让参与的工程师充分认识到Code Review的好处 1.互相学习,彼此成就 无论是高手云集的架构师团队,还是以CURD为主的业务 ...

  2. Pyinstaller 打包 torch 后执行失败 OSError: could not get source code

    1. 问题现象 系统环境 Python 3.6.9 torch 1.2.0 torchvision 0.4.0 Pyinstaller 4.5.1 Pyinstaller 打包 torch 后执行失败 ...

  3. VS Code 安装 Go 插件、自定义扩展配置、断点调试

    1. 安装插件 使用快捷键 Ctrl+Shift+X 打开插件安装页面,安装 Go 插件. 2. 自定义扩展配置 使用快捷键 Ctrl+, 打开自定义配置页,编辑 settings.json ,定义与 ...

  4. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、

    1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...

  5. VS Code 安装插件、自定义模板、自定义配置参数、自定义主题、配置参数说明、常用的扩展插件

    1. 下载和官网教程 下载地址:https://code.visualstudio.com/ 官方教程:https://code.visualstudio.com/docs 2. 安装插件 安装扩展插 ...

  6. VS Code 离线安装插件方法

    本文以离线安装 C/C++ 插件为例进说明,其它语言的插件的离线安装方法类似. 离线安装 C/C++ 插件相对比较麻烦一些,主要是因为 C/C++ 插件还依赖其他需要在线下载的组件: C/C++ la ...

  7. 离线安装Visual Studio Code插件

    在使用Visual Studio Code 开发时候,有时可能会碰到需要离线安装插件的情况.这时候就需要单独下载插件包,本文就以C/C++插件包为例说明如何离线安装Visual Studio Code ...

  8. 解决 win10 pycurl安装出错 Command python setup.py egg_info failed with error code 10 编译安装包 安装万金油...

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yexiaohhjk/article/d ...

  9. pycharm debug后会出现 step over /step into/step into my code /force step into /step out 分别表示...

    1.debug,全部打印 2.打断点debug,出现单步调试等按钮,只运行断点前 3.setup over 调试一行代码 4.setup out 运行断点后面所有代码 5.debug窗口显示调试按钮 ...

  10. VS Code搭建C/C++开发环境超详细教程

    目录 一.下载配置MinGW 1. 下载解压 MinGW 2. 配置环境变量 3. 测试是否配置成功 二.安装 C/C++ 插件 三.第一个程序 四.相关插件推荐 1. Visual Studio I ...

最新文章

  1. web标准化设计:常用的CSS命名规则
  2. linux c 文件键盘写入,linux - C非阻塞键盘输入
  3. 树模型为什么是不能进行梯度下降
  4. oracle multi read,解读Oracle12.2体系架构:Filesystem与Multitenant
  5. Java黑皮书课后题第2章:2.10(科学:计算能量)编写程序,计算将水从初始温度加热到最终温度所需的能量。程序应该提示用户输入水的重量(kg),以及水的初始温度、最终温度
  6. 通过Servlet的response绘制页面验证码
  7. php session作用,PHP中Session的作用
  8. [译]使用asp.net mvc 的工具提示
  9. 解决svn cannot set LC_CTYPE locale的问题
  10. Android 系统(43)----Andropid 基础知识
  11. 实体-关系信息抽取上线使用F1值87.1% (附数据集)
  12. 十二周二次课 12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.
  13. Charles使用教程
  14. 路由器PPPoE拨号密码(ADSL密码)找出方法 ZT
  15. Raspberry-Pi-PICO系列--第七篇 创建自己的工程
  16. Vue-生命周期(函数)
  17. hexo+yilia添加背景音乐
  18. ULONG_PTR的作用
  19. MySQL数据库特点
  20. 二叉树基本知识点图文介绍(全网最简洁)

热门文章

  1. 动态IP与静态IP的区别
  2. Java Native 方法
  3. TESTTESTTESTTESTTESTTEST
  4. Apple FairPlay DRM及其工作原理
  5. 深入理解Pytorch负对数似然函数(torch.nn.NLLLoss)和交叉熵损失函数(torch.nn.CrossEntropyLoss)
  6. 什么是Java的反射机制?
  7. 【AI测试】人工智能测试整体介绍——第三部分
  8. 物联网+人工智能:发那科、思科、罗克韦尔自动化联合推出FIELD system
  9. 维瑞最新推出5年期VeriSign SSL证书价格
  10. 纯前端JS实现一个登记照改换底色背景色功能