矩阵乘法 (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. 抢程序员饭碗?自动写代码的Deep TabNine真如此神奇?
  2. mysql 重要监控参数_mysql 的重要参数,监控需要
  3. Xilinx Axi Dma Userspace模式下 寄存器 +MMAP 测试程序
  4. java 注解 enum_13 Java枚举和注解
  5. Sentinel圣天诺加密狗简单使用教程(Linux)
  6. CryptoAPI与openssl数字签名与验证交互
  7. Intent 的用法
  8. 《飞秋2010下载》的开头说
  9. .Net Compact Framework 基础篇(10)--多语言程序的定制
  10. 什么是网站物理结构、逻辑结构
  11. 5.数据中台 --- 数据汇聚联通:打破企业数据孤岛
  12. 什么情况下使用多线程
  13. AddThis AddFeed WordPress插件发布 [转]
  14. 蓝桥杯c语言程序题题库,蓝桥杯c语言试题
  15. 禁用Insert按键
  16. 电子自旋共振波谱仪的用途和主要检测对象
  17. C++ 点(.)操作符和箭头(-)操作符
  18. 好书收藏:读书知多少
  19. CCS:Type region `APP_CODE_MEM' overflowed by 641240 b
  20. Setting 模块之辅助功能

热门文章

  1. ARP(地址解析协议)和RARP(逆地址解析协议)
  2. CSS 仿 iOS 系统通知数字样式
  3. 多方安全计算(MPC)发展脉络及应用实践
  4. 深入理解Pytorch负对数似然函数(torch.nn.NLLLoss)和交叉熵损失函数(torch.nn.CrossEntropyLoss)
  5. 解决方案:h5网页外部浏览器唤起微信分享,唤起微信面板,分享朋友圈方案,兼容大部分浏览器
  6. 哪些专业适合学习人工智能?学了AI可以做什么职业?
  7. 香农公式和奈氏准则描述的是同一个东西吗?
  8. vue element-ui elementUi 邮箱自动补全 邮箱自动填充
  9. Linux安装教程以及开发板预学习
  10. 基于java的物流信息管理系统(计算机毕业设计)