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 ...
最新文章
- web标准化设计:常用的CSS命名规则
- linux c 文件键盘写入,linux - C非阻塞键盘输入
- 树模型为什么是不能进行梯度下降
- oracle multi read,解读Oracle12.2体系架构:Filesystem与Multitenant
- Java黑皮书课后题第2章:2.10(科学:计算能量)编写程序,计算将水从初始温度加热到最终温度所需的能量。程序应该提示用户输入水的重量(kg),以及水的初始温度、最终温度
- 通过Servlet的response绘制页面验证码
- php session作用,PHP中Session的作用
- [译]使用asp.net mvc 的工具提示
- 解决svn cannot set LC_CTYPE locale的问题
- Android 系统(43)----Andropid 基础知识
- 实体-关系信息抽取上线使用F1值87.1% (附数据集)
- 十二周二次课 12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.
- Charles使用教程
- 路由器PPPoE拨号密码(ADSL密码)找出方法 ZT
- Raspberry-Pi-PICO系列--第七篇 创建自己的工程
- Vue-生命周期(函数)
- hexo+yilia添加背景音乐
- ULONG_PTR的作用
- MySQL数据库特点
- 二叉树基本知识点图文介绍(全网最简洁)
热门文章
- 动态IP与静态IP的区别
- Java Native 方法
- TESTTESTTESTTESTTESTTEST
- Apple FairPlay DRM及其工作原理
- 深入理解Pytorch负对数似然函数(torch.nn.NLLLoss)和交叉熵损失函数(torch.nn.CrossEntropyLoss)
- 什么是Java的反射机制?
- 【AI测试】人工智能测试整体介绍——第三部分
- 物联网+人工智能:发那科、思科、罗克韦尔自动化联合推出FIELD system
- 维瑞最新推出5年期VeriSign SSL证书价格
- 纯前端JS实现一个登记照改换底色背景色功能