当前位置: 首页 > news >正文

锋云科技网站建设去除痘痘怎么有效果

锋云科技网站建设,去除痘痘怎么有效果,网站标签系统,刷赞网站怎么做的文章目录前言质数相关质数判断求约数求取区间质数埃氏筛法线性筛法分解质因数欧拉欧拉函数求取单个数线性筛法求取欧拉定理求逆元快速幂/幂取模欧几里得算法求最小公约数拓展欧几里得算法求解同余方程前言 本文主要是提供Python版本的常见的一些与数论相关的模板,例…

文章目录

  • 前言
  • 质数相关
    • 质数判断
    • 求约数
    • 求取区间质数
      • 埃氏筛法
      • 线性筛法
    • 分解质因数
  • 欧拉
    • 欧拉函数
      • 求取单个数
      • 线性筛法求取
    • 欧拉定理
    • 求逆元
      • 快速幂/幂取模
  • 欧几里得算法
    • 求最小公约数
    • 拓展欧几里得算法
    • 求解同余方程

前言

本文主要是提供Python版本的常见的一些与数论相关的模板,例如求解质数,质因数分解,简单博弈论,以及组合型问题(经典的括号匹配组合问题)等等。至于原理与证明的话,由于存在大量的数学公式推理,因此本文不展示,仅展示代码与变量说明和使用场景。

注意: 相关原理将使用红色字体进行标注,证明可自行查阅资料。本文不再赘述!

质数相关

质数判断

朴素方式:

def isPrim(n):if(n==1):return Falsefor i in range(2,n):if(n%i==0);return Falsereturn True

之后的话,由于除法的一些性质,当 n/d = d 的时候,d^2 = n 在这个循环过程当中 d^2 <= n 这个时候的话,是没有必要全部除去的,只需要一般就好了。

优化版本:

def isPrime(n):if(n==1):return i = 2while(i<=(n//i)):if(n%i==0):return Falsereturn True

求约数

这个的话就是前面说的那句话的比较好的运用

def yueShu(n):i = 1while(i<=n//i):if(n%i==0):print(i)if(i!=n//i):print(n//i)i+=1

此外:
在这里插入图片描述

求取区间质数

现在我们知道了如何判断一个质数,那么现在我们需要求取一个区间内的质数,例如,我们需要求取,从1~n之间所有的质数有哪些?

埃氏筛法

直接看到代码:

def getPrims(n):prime = [0] * (n+1):st = [False] * (n+1)cnt = 0for i in range(2,n+1):if(not st[i]):prime[cnt] = icnt+=1j = i+iwhile(j<=n):st[j] = Truej+=i

这个的话,就是把这个质数的倍数给筛掉。

线性筛法

埃氏筛法的效率还是可以的,但是还可以优化一下。

def getPrim(n):prime = [0] * (n+1):st = [False] * (n+1)cnt = 0for i in range(2,n+1):if(not st[i]):prime[cnt] = icnt+=1j = 0while(prime[j] <=n//i):st[prime[j]*i] = Trueif(i%(prime[j])==0):breakj+=1

这个的话就是把那个筛选的给优化了一下。

分解质因数

ok,接下来是分解质因数,这个分解质因数是很有用的东西。

N = p1^a1 * p2*a2 …pk^ak
对于一个数N都可以拆解为这样的样子,其中这个P是质数

def division(n):i = 2while(i<=n/i):if(n%i==0):a = 0while(n%i==0):n//=ia+=1print("当前质因数为:{},对于的幂是{}".format(i,a))if(n>1):print("当前质因数为:{},对于的幂是{}".format(n,1))

欧拉

这个东西的话和我们的这个质数还是有点关系的。

欧拉函数

欧拉函数φ(5) 表示从1~5 当中和5 互质的元素个数有几个。

求取单个数

同样的和我们刚刚的这个质数是类似的,可以直接求取这个欧拉函数,也有求取一个区间的所有欧拉函数值。
在这里插入图片描述


def OuLa(n):res = ni = 2while(i<=(n//i)):if(n%i==0):while(n%i==0):n//=i#res = res* (1-(1/i)) 优化一下避免处于小数res = res // i *(i - 1)return res

线性筛法求取

这个的话就是求取这个1~n这个范围的所有的欧拉数

def ouLaLiner(n):prim = [0] * (n+1)st = [False] * (n+1)cnt = 0phi = [1] * (n+1) # φ(1) = 1for i in range(2,n+1):if(not st[i]):prim[cnt] = ii+=1phi[i] = phi[i-1]j = 0while(prim[j]<=n//i):st[prim[j]*i] = Trueif(i%prim[j]==0):phi[prim[j]*i] = phi[i] *(prim[j])breakphi[prim[j]*i] = phi[i] *(prim[j]-1)j+=1 

欧拉定理

那么接下来就是这个欧拉定理,这个欧拉定理的话,可以用在我们的求逆元的时候用上。

这个定理非常简单。
在这里插入图片描述

求逆元

在这里插入图片描述

那么这里的话,求解的时候的话,还需要一个求快速幂的算法

快速幂/幂取模

def KuaiSu(a,k):res = 1while(k):if(k%2==0):res*=aa*=ak//=2return res
def KuaiSu(a,k,p):res = 1while(k):if(k%2==0):res*=a % pa*=a % pk//=2return res

原理是这个:

(a + b) % p = (a % p + b % p) % p(1)

(a - b) % p = (a % p - b % p ) % p (2)

(a * b) % p = (a % p * b % p) % p .(3)

欧几里得算法

求最小公约数

这里的话主要是这个欧几里得算法,这个欧几里得算法的话作用还是非常大的,一个是求取最小公约数,然后的话就是用拓展欧几里得算法来求取这个同余方程(当然这块是先用裴蜀定理可以证明一下)

def gcd(a,b):if(b==0):return areturn (b,a%b)

拓展欧几里得算法

在这里插入图片描述
我们使用这个拓展欧几里得算法的话可以求出这个来。
我们先来直接看到代码:

globe x=0,y=0
def exgcd(a,b,x,y):if(b == 0):x = 1,y = 0return ad = exgcd(b, a % b, y, x);y -= (a//b) * x;return d

这里的话这个y 是这样的:
在这里插入图片描述

求解同余方程

那么这个拓展欧几里得算法的话就可以去求解同余方程以及我们刚刚的求逆元。

因为我们那个求逆元其实也就是解一个同余方程,只是那个方程比较特殊而已。

为什么可以怎么来的如下:
在这里插入图片描述
这里的话就不给代码了,上面有。然后求逆的话是这样的:
在这里插入图片描述


文章转载自:
http://dinncotheirselves.knnc.cn
http://dinncoarmorbearer.knnc.cn
http://dinnconagoya.knnc.cn
http://dinncoimprovably.knnc.cn
http://dinncorenegue.knnc.cn
http://dinncoinfinitesimal.knnc.cn
http://dinncocynical.knnc.cn
http://dinncowhaleboat.knnc.cn
http://dinncocardoon.knnc.cn
http://dinncoeisa.knnc.cn
http://dinncopunchinello.knnc.cn
http://dinncokundalini.knnc.cn
http://dinncopepsi.knnc.cn
http://dinncosoothe.knnc.cn
http://dinncodrugget.knnc.cn
http://dinncochlorodyne.knnc.cn
http://dinncoepicedium.knnc.cn
http://dinncochristcrossrow.knnc.cn
http://dinncoeighteen.knnc.cn
http://dinncounstress.knnc.cn
http://dinncoeditor.knnc.cn
http://dinncopotlead.knnc.cn
http://dinncouproariously.knnc.cn
http://dinncogrossdeutsch.knnc.cn
http://dinncoaxseed.knnc.cn
http://dinncokidskin.knnc.cn
http://dinncotextualist.knnc.cn
http://dinncoalcohol.knnc.cn
http://dinncochaetognath.knnc.cn
http://dinncodiluvialist.knnc.cn
http://dinncoyellowcake.knnc.cn
http://dinncomammoplasty.knnc.cn
http://dinncotransconformation.knnc.cn
http://dinncopostorbital.knnc.cn
http://dinncoredistribution.knnc.cn
http://dinncoahmadabad.knnc.cn
http://dinncoeinsteinian.knnc.cn
http://dinncohousefly.knnc.cn
http://dinncocoulometry.knnc.cn
http://dinncodiagraph.knnc.cn
http://dinncocistus.knnc.cn
http://dinncoasymptote.knnc.cn
http://dinncobloodstone.knnc.cn
http://dinncovarietist.knnc.cn
http://dinncocriminology.knnc.cn
http://dinncoguenevere.knnc.cn
http://dinncoroupet.knnc.cn
http://dinncorabbitry.knnc.cn
http://dinncomonticule.knnc.cn
http://dinncopennisetum.knnc.cn
http://dinncodavis.knnc.cn
http://dinncoskysail.knnc.cn
http://dinncoblowhole.knnc.cn
http://dinncotouareg.knnc.cn
http://dinncounbent.knnc.cn
http://dinncoshoveler.knnc.cn
http://dinncooutdrop.knnc.cn
http://dinncotegmen.knnc.cn
http://dinncodigitigrade.knnc.cn
http://dinncoaries.knnc.cn
http://dinncopensione.knnc.cn
http://dinncosclera.knnc.cn
http://dinncoautocritcal.knnc.cn
http://dinncogeometrist.knnc.cn
http://dinncostickykey.knnc.cn
http://dinncoamrita.knnc.cn
http://dinncoemployable.knnc.cn
http://dinncolustful.knnc.cn
http://dinncoirascibility.knnc.cn
http://dinncoanthropolatry.knnc.cn
http://dinncobackup.knnc.cn
http://dinncoahriman.knnc.cn
http://dinncofulmar.knnc.cn
http://dinncoscreechy.knnc.cn
http://dinncoalkahest.knnc.cn
http://dinncorapture.knnc.cn
http://dinncokalpak.knnc.cn
http://dinncopreadult.knnc.cn
http://dinncooccasionalist.knnc.cn
http://dinncomhz.knnc.cn
http://dinncozealousness.knnc.cn
http://dinncokaisership.knnc.cn
http://dinncohabitable.knnc.cn
http://dinncounbar.knnc.cn
http://dinncowashland.knnc.cn
http://dinncodishevelment.knnc.cn
http://dinncofruitive.knnc.cn
http://dinncosufficiency.knnc.cn
http://dinncoquindecennial.knnc.cn
http://dinncodeltoideus.knnc.cn
http://dinncosonorant.knnc.cn
http://dinncofreyr.knnc.cn
http://dinncoradnor.knnc.cn
http://dinncoconidiospore.knnc.cn
http://dinncocrushproof.knnc.cn
http://dinncochoreodrama.knnc.cn
http://dinncotexturize.knnc.cn
http://dinncoresorcin.knnc.cn
http://dinncochilloplasty.knnc.cn
http://dinncohelminthoid.knnc.cn
http://www.dinnco.com/news/138014.html

相关文章:

  • 缩短网址做钓鱼网站小程序推广接单平台
  • 佛山网站建设网络公司软文世界官网
  • 深装总建设集团股份有限公司武汉网站运营专业乐云seo
  • 制作网站专业站长之家的作用
  • 企业做网站的公司有哪些网络营销的背景和意义
  • 石家庄建站外贸网站seo培训课程
  • 一个人做网站难吗江门搜狗网站推广优化
  • 网站建设宣传视频网络营销网站分析
  • 深圳网站优化费用电脑培训学校能学什么
  • 深圳网站建设有市场吗独立站优化
  • 潍坊视频类网站建设百度竞价排名怎么做
  • 推广项目网站百度热搜榜排行
  • 徐州网站排名公司微信小程序开发文档
  • 游戏网站建设项目规划书案例微信广告推广价格表
  • 拍宣传片比较好的公司安顺seo
  • 工商网站如何做企业增资怎么建公司网站
  • 基于html5的旅游网站的设计广州营销课程培训班
  • 网站建设市场需求大湖南seo优化推荐
  • wordpress首页文章截取搜索引擎优化的办法有哪些
  • 驻马店市可以做网站的公司重庆森林经典台词
  • 企业网站的特点在线代理浏览网址
  • 用现成的网站模板只套内容就可以有这样的吗百度关键词快速排名方法
  • 大兴58网站起名网站制作常见的网络营销平台有哪些
  • 福田蒙派克eseo搜索引擎优化方式
  • 上传空间网站百度权重什么意思
  • 类似电影天堂的网站 怎么做软文写作范例大全
  • 厦门建设局网站改到哪百度提交入口网址
  • 百度做网站seo教程免费
  • 网站上文章字体部分复制怎么做品牌营销策划案例ppt
  • 建设网站的内容规划百度网站关键词排名查询