【初等数论】个人数论总结
文章目录
- 进制
- 十进制转二进制
- (1)短除法
- (2)贪心算法
- 二进制转十进制
- b进制转十进制
- 十进制转b进制
- 快速幂
- 例题1:越狱
- 例题2:倒水
ε=(´ο`*)))唉,又快学完初等数论了,我又心血来潮,再次写下一篇壮美的篇章。
一夜复习两茫茫。看一句,忘三行。路遇友人,脸色皆凄凉。视死如归入考场,做小抄,占座忙。考完之后心凉凉,左右曰,今必亡。查询成绩,众人皆过我独亡。再顾昔时左右人,这一群,装逼郎。———题记一夜复习两茫茫。\\看一句,忘三行。\\路遇友人,脸色皆凄凉。\\视死如归入考场,做小抄,占座忙。\\ 考完之后心凉凉,左右曰,今必亡。\\查询成绩,众人皆过我独亡。\\再顾昔时左右人,这一群,装逼郎。\\———题记一夜复习两茫茫。看一句,忘三行。路遇友人,脸色皆凄凉。视死如归入考场,做小抄,占座忙。考完之后心凉凉,左右曰,今必亡。查询成绩,众人皆过我独亡。再顾昔时左右人,这一群,装逼郎。———题记
进制
略带而过
十进制转二进制
(1)短除法
(2)贪心算法
二进制转十进制
N(十进制)=an∗2n+an−1∗2n−1+……+a1∗21+a0∗20N(十进制)=a_n*2^n+a_{n-1}*2^{n-1}+……+a_1*2^1+a_0*2^0N(十进制)=an∗2n+an−1∗2n−1+……+a1∗21+a0∗20
b进制转十进制
乘以基数并展开:
x=an∗bn+an−1∗bn−1+……+a1∗b1+a0∗b0x=a_n*b^n+a_{n-1}*b^{n-1}+……+a_1*b^1+a_0*b^0x=an∗bn+an−1∗bn−1+……+a1∗b1+a0∗b0
x=(…(an∗b+an−1)∗b+…)∗b+a0x=(…(a_n*b+a_{n-1})*b+…)*b+a_0x=(…(an∗b+an−1)∗b+…)∗b+a0
十进制转b进制
快速幂
快速幂,顾名思义,就是快速计算某个数的多少次幂,其时间复杂度为Θ(log2x)\Theta(\log_2 x)Θ(log2x)。
预备知识:
原理:倍增思想
a∗a=a2a22=a4a42=a8a*a=a^2\\{a^2}^2=a^4\\{a^4}^2=a^8a∗a=a2a22=a4a42=a8
【核心代码】
int pow(int a,int b,int p)//快速幂求a^b%p
{int res=1;for(;b;b>>=1){if(b&1) res=(ll)res*a%p;a=(ll)a*a%p; }return res;
}
例题1:越狱
【题目描述】
监狱有连续编号为1..n1..n1..n的nnn个房间,每个房间关押一个犯人。有mmm种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱,结果模100003100003100003取余。1≤m≤108,1≤n≤1012。1≤m≤10^8,1≤n≤10^{12}。1≤m≤108,1≤n≤1012。
【解析】
发生越狱的情况下不太好分析,所以我们可以先算出总方案数再减去不发生越狱的情况。
显然,所有的方案数为 mnm^nmn ,所有不发生越狱的方案数为 m∗(m−1)(n−1)m*(m-1)^{(n-1)}m∗(m−1)(n−1) 。
所以,发生越狱的方案数为 mn−m∗(m−1)(n−1)m^n-m*(m-1)^{(n-1)}mn−m∗(m−1)(n−1) 。
用快速幂即可完成。
【代码展示】
#include<bits/stdc++.h>
#define ud using namespace std
#define ll long long
ud;
ll m,n;
inline long long read()
{long long sum=0,flag=1;char c;for(;c<'0'||c>'9';c=getchar())if(c=='-') flag=-1;for(;c>='0'&&c<='9';c=getchar())sum=(sum<<1)+(sum<<3)+c-'0';return sum*flag;
}
ll pow(ll a,ll b)
{ll tmp=1;while(b!=0){if(b%2==1){tmp*=a;tmp%=100003;}b=b/2;a*=a;a%=100003;}return tmp;
}
int main()
{m=read();n=read();ll ans=m*1LL*(pow(m,n-1)-pow(m-1,n-1)+100003)%100003;//多加一个100003起到保险作用printf("%lld\n",ans);return 0;
}
例题2:倒水
【题目描述】
一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的瓶子) 显然在某些情况下CC无法达到目标,比如N=3,K=1。此时CC会重新买一些新的瓶子(新瓶子容量无限,开始时有1升水),以到达目标。 现在CC想知道,最少需要买多少新瓶子才能达到目标呢?1<=N<=109,K<=10001<=N<=10^9,K<=10001<=N<=109,K<=1000 。
【解析】
显然,由题意我们可以得到,保留瓶子的水容量一定为 2n(n∈N∗)2^n(n\in N^*)2n(n∈N∗) ,那么题目就可以转化为求 NNN 的二进制形式中从高位到低位保留 KKK 位 111 ,所需要补充的最小差值。
【初等数论】个人数论总结相关推荐
- 【更新完毕】《算法竞赛中的初等数论》(ACM / OI / MO)前言、后记、目录索引(十五万字符的数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 <算法竞赛中的初等数论>的全部内容的 Portable Document Format 版 ...
- 数学各个分支(借花献佛)——数论,拓扑,射影几何,常微分方程,非欧几何
文章目录 前言 1. 数论 1.1数论的发展 1.2数论的分支 2. 拓扑学 2.1 拓扑学的由来 2.2 什么是拓扑学 3. 射影几何 3.1 射影几何的发展 3.2 射影几何的内容 3.3 mar ...
- 数据结构和算法 数论 概述
1.数论概述 算法导论说:"数论曾经被视为一种虽然优美但却没什么用处的纯数学学科.如今,数论算法已经得到了广泛的使用.这很大程度上要归功于人们发明了基于大素数的加密方法.快速计算大素数的算法 ...
- 数学各个研究方向简介
1. 数论 人类从学会计数开始就一直和自然数打交道了,后来由于实践的需要,数的概念进一步扩充,自然数被叫做正整数,而把它们的相反数叫做负整数,介于正整数和负整数中间的中性数叫做0.它们和起来叫做整数. ...
- 最全数学各个分支简介
来源:算法数学俱乐部 编辑 ∑Gemini 数论 人类从学会计数开始就一直和自然数打交道了,后来由于实践的需要,数的概念进一步扩充,自然数被叫做正整数,而把它们的相反数叫做负整数,介于正整数和负整数中 ...
- 哥德巴赫猜想的证明(李扩继)
哥德巴赫猜想是一个纯数学命题,是偶数的分类问题.偶数=奇合数+奇合数=奇合数+素数=素数+素数.本来没有问题的事,可在数学领域里,总要把每一个命题是真的还是假的要判断清楚,德国的一个中学数学教师哥德巴 ...
- 算法与数学之美:最全数学各个分支简介
数论 人类从学会计数开始就一直和自然数打交道了,后来由于实践的需要,数的概念进一步扩充,自然数被叫做正整数,而把它们的相反数叫做负整数,介于正整数和负整数中间的中性数叫做0.它们和起来叫做整数. 对于 ...
- [转载]数学各个研究方向简介
数论 人类从学会计数开始就一直和自然数打交道了,后来由于实践的需要,数的概念进一步 扩充,自然数被叫做正整数,而把它们的相反数叫做负整数,介于正整数和负整数中间的 中性数叫做0.它们和起来叫做整数. ...
- 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
- 《算法竞赛中的初等数论》(四)正文 0x40反演(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
最新文章
- Docker-compose 常用命令及网络设置(五)
- android view退出动画,android animation——view进来退出动画
- 爬虫.之登陆及动态网页的抓取
- Docker容器学习梳理-容器时间跟宿主机时间同步
- sqlyog怎么设置默认值_如何使用SQLyog
- java object 判断null_java判断object为null
- 《大道至简》第一章读后感(java伪代码)
- 放置江湖html5源码,「放置江湖」——经典文字类放置武侠手游
- 运维学习部分基础知识概括
- java解析json list
- 7-154 置点不动产——认真学习,努力工作买买房子吧
- xcode安装ipa包
- Gogs搭建教程-极易搭建的自助 Git 服务
- 如何合理的设计系统容量?
- PDF 中图片的提取
- 赛微微电启动上市发行:生产依赖外协加工厂商,市盈率偏高
- android认证失败怎么办,小米VIP认证失败怎么办
- Windows Server 2012R2配置分层存储,实现廉价的桌面云存储方案
- locationManager.getLastKnownLocation(locationProvider);//地理位置获取为null的解决方案
- 奥地利博士联培申请签证经验(奥地利签证)
热门文章
- C55X McBSP
- Vue 设置背景图片样式
- 您电脑上可能没有安装JRE插件或者该插件已被浏览器拦截,如果您确认没有安装JRE插件,请单击“确定“,页面将跳转到插件下载地址
- ENSP网络综合实验
- 大厂php笔试题,【大厂必备】2020超经典PHP面试题
- 八、JDBC批量处理sql语句
- linux 网卡virbr0,Linux网络配置
- vue-video-player 拖动进度条触发暂停移动端展示倍速菜单
- django多任务开启rabbitmq,并进行声明队列、发送、阻塞监听消息
- C++ 整型转16进制字符串或16进制字符串转整型