Code for fun (1)
矩阵乘法 (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)相关推荐
- 如何在团队中做好Code Review
一.Code Review的好处 想要做好Code Review,必须让参与的工程师充分认识到Code Review的好处 1.互相学习,彼此成就 无论是高手云集的架构师团队,还是以CURD为主的业务 ...
- 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 后执行失败 ...
- VS Code 安装 Go 插件、自定义扩展配置、断点调试
1. 安装插件 使用快捷键 Ctrl+Shift+X 打开插件安装页面,安装 Go 插件. 2. 自定义扩展配置 使用快捷键 Ctrl+, 打开自定义配置页,编辑 settings.json ,定义与 ...
- VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、
1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...
- VS Code 安装插件、自定义模板、自定义配置参数、自定义主题、配置参数说明、常用的扩展插件
1. 下载和官网教程 下载地址:https://code.visualstudio.com/ 官方教程:https://code.visualstudio.com/docs 2. 安装插件 安装扩展插 ...
- VS Code 离线安装插件方法
本文以离线安装 C/C++ 插件为例进说明,其它语言的插件的离线安装方法类似. 离线安装 C/C++ 插件相对比较麻烦一些,主要是因为 C/C++ 插件还依赖其他需要在线下载的组件: C/C++ la ...
- 离线安装Visual Studio Code插件
在使用Visual Studio Code 开发时候,有时可能会碰到需要离线安装插件的情况.这时候就需要单独下载插件包,本文就以C/C++插件包为例说明如何离线安装Visual Studio Code ...
- 解决 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 ...
- 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窗口显示调试按钮 ...
- VS Code搭建C/C++开发环境超详细教程
目录 一.下载配置MinGW 1. 下载解压 MinGW 2. 配置环境变量 3. 测试是否配置成功 二.安装 C/C++ 插件 三.第一个程序 四.相关插件推荐 1. Visual Studio I ...
最新文章
- 抢程序员饭碗?自动写代码的Deep TabNine真如此神奇?
- mysql 重要监控参数_mysql 的重要参数,监控需要
- Xilinx Axi Dma Userspace模式下 寄存器 +MMAP 测试程序
- java 注解 enum_13 Java枚举和注解
- Sentinel圣天诺加密狗简单使用教程(Linux)
- CryptoAPI与openssl数字签名与验证交互
- Intent 的用法
- 《飞秋2010下载》的开头说
- .Net Compact Framework 基础篇(10)--多语言程序的定制
- 什么是网站物理结构、逻辑结构
- 5.数据中台 --- 数据汇聚联通:打破企业数据孤岛
- 什么情况下使用多线程
- AddThis AddFeed WordPress插件发布 [转]
- 蓝桥杯c语言程序题题库,蓝桥杯c语言试题
- 禁用Insert按键
- 电子自旋共振波谱仪的用途和主要检测对象
- C++ 点(.)操作符和箭头(-)操作符
- 好书收藏:读书知多少
- CCS:Type region `APP_CODE_MEM' overflowed by 641240 b
- Setting 模块之辅助功能
热门文章
- ARP(地址解析协议)和RARP(逆地址解析协议)
- CSS 仿 iOS 系统通知数字样式
- 多方安全计算(MPC)发展脉络及应用实践
- 深入理解Pytorch负对数似然函数(torch.nn.NLLLoss)和交叉熵损失函数(torch.nn.CrossEntropyLoss)
- 解决方案:h5网页外部浏览器唤起微信分享,唤起微信面板,分享朋友圈方案,兼容大部分浏览器
- 哪些专业适合学习人工智能?学了AI可以做什么职业?
- 香农公式和奈氏准则描述的是同一个东西吗?
- vue element-ui elementUi 邮箱自动补全 邮箱自动填充
- Linux安装教程以及开发板预学习
- 基于java的物流信息管理系统(计算机毕业设计)