ACM的数学基础
懒得整理了,请勿往下看。
(一)欧拉函数
设n为正整数,以φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值,这里函数φ:N→N,n→φ(n)称为欧拉函数。有如下一些性质:
(1)欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)。
(2)特殊性质:当n为奇数时,φ(2n)=φ(n), 证明与上述类似。欧拉函数值总是为偶数(除了特殊情况)。
(3)若n为质数则φ(n)=n-1。
(4)若n=pk,φ(n) = pk - p(k-1) = (p-1)*p(k-1),因为除了p的倍数外,其他数都跟n互质。
(5)φ函数值的通式:φ(x)=x*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)*…..*(1-1/pn),其中p1, p2……pn为x的所有质因数,且x>=2。特殊情况 φ(1)=1。 (注意:每种质因数只需要一个。
比如12=2*2*3那么φ(12)= 12*(1-1/2)*(1-1/3)=4,因为1,5,7,11均和12互质。比如φ(8)=4,因为1,3,5,7均和8互质。
(二)欧拉定理
若n与a互质,且皆为正整数,则
。
(三)乘法逆元
定义:满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元。
(1)为什么要有乘法逆元呢?
答:当我们要求(a/b) mod p的值,且a很大,无法直接求得a/b的值时,我们就要用到乘法逆元。
定理:a存在模p的乘法逆元的充要条件是gcd(a,p) = 1
(2)如何求解 (a/b) mod p 的结果?
答:我们可以通过求b关于p的乘法逆元k,将a乘上k再模p( 即ans=(a*k)%p,这样就比较好算了 )。其结果与 (a/b) % p 等价。
(3)如何证明?
证明:
根据b*k≡1 (mod p)有b*k=p*x+1,那么k=(p*x+1)/b。
把k代入(a*k) mod p,得:
(a*(p*x+1)/b) mod p
=((a*p*x)/b+a/b) mod p
=[((a*p*x)/b) mod p +(a/b)] mod p
=[(p*(a*x)/b) mod p +(a/b)] mod p
//注:p*[(a*x)/b] mod p=0,因为既然要取模,a/b的结果肯定是为正整数。
所以原式等于:(a/b) mod p
证毕!
补:还有一条公式也是用于求模用的:
(ans表示我们要求的结果,且无需考虑所有数字的特殊性)
ACM的数学基础的更多相关文章
- ACM失败之路
校赛打完,已过四月,该是准备背起行囊,踏上考研之路了,自然,得先阔别一下ACM了,想起这几年ACM路,感慨颇多,不得不一诉心肠,与大家分享一下我的ACM历程,如果有人能从此文获取一些益处,那我就很欣慰 ...
- ACM起步要点总结(转哈工大)
首先,我想说的就是,我是一个很普通的ACMer,高中没有参加过任何计算机和数学竞赛的经历,也没有ben那样过人的天资,努力至今也未能取得什么成绩,我之所以写下这篇文章,只是希望给刚进大学或者刚进ACM ...
- 2013 ACM网络搜索与数据挖掘国际会议
ACM网络搜索与数据挖掘国际会议" title="2013 ACM网络搜索与数据挖掘国际会议"> 编者按:ACM网络搜索与数据挖掘国际会议(6th ACM Conf ...
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- acm结束了
最后一场比赛打完了.之前为了记录一些题目,开了这个博客,现在结束了acm,这个博客之后也不再更新了. 大家继续加油!
- 关于ACM的总结
看了不少大神的退役帖,今天终于要本弱装一波逼祭奠一下我关于ACM的回忆. 从大二上开始接触到大三下结束,接近两年的时间,对于大神们来说两年的确算不上时间,然而对于本弱来说就是大学的一半时光.大一的懵懂 ...
- 第一届山东省ACM——Phone Number(java)
Description We know that if a phone number A is another phone number B’s prefix, B is not able to be ...
- 第一届山东省ACM——Balloons(java)
Description Both Saya and Kudo like balloons. One day, they heard that in the central park, there wi ...
随机推荐
- Matcher的group()/group(int group)/groupCount()用法介绍
直接上代码: package com.dajiangtai.djt_spider.util; import java.util.regex.Matcher;import java.util.regex ...
- 将Opencv java中的Mat通过jni传递到C++中的方法
public native void FindFeatures(long matAddrGr, long matAddrRgba); ... mRgba = new Mat(height, width ...
- WPF后台修改内容界面不显示问题
通知3部曲:1.Model继承并实现 INotifyPropertyChanged 接口:2.数据集合使用ObservableCollection<T>集合:3.View使用Binding ...
- Python服务Debian打包新思路
此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Debian 打包一直是比较冷僻的技术,大部分同学都不会接触到它. 但是我们 Debian 服务器上安装的各 ...
- JDBC的初步了解及使用
一.概念 1.什么是JDBC? JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由 ...
- Git查询
Git查询 查询分支 git branch # 查询本地分支 git branch -a # 查询所有分支 $ git branch -a * master remotes/origin/HEAD - ...
- Git入门 时光穿梭鸡 版本回退 工作区 暂存区
分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得 ...
- 使用htmlparser爬虫技术爬取电影网页的全部下载链接
昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...
- 如何删除.DS_Store文件?
.DS_Store出现在Desktop和其它地方,看它碍眼,它是什么,详见百度百科 http://baike.baidu.com/link?url=yLTDHR6OS66-981wpCY-mWPF7a ...
- C# 数组之ArrayList
一.引言 ArrayList类相当于一种高级的动态数组,是Array类的升级版本. 一般的Array,底层是数组实现的,对于数据的查找和修改十分高效.但是有2个大的缺点,其一为增删低效,其二为数组长度 ...