首页 >>  正文

python求反素数

来源:baiyundou.net   日期:2024-09-21

丰色 发自 凹非寺

量子位 | 公众号 QbitAI

不到一个月的时间,陶哲轩又一篇论文上线:

这次是关于欧拉函数的单调非递减序列,他通过初等论证证明了一个名为M(x)函数的渐近式。

(即随着x增大,M(x)的行为趋势)

该函数在他之前的一篇博客中有所提及,大意是指一系列从1到x的数字中,满足欧拉φ函数是非递减的最长子序列的长度。

毫不意外,这篇论文的出产过程中也用到了AI。

不过,这次陶哲轩承认:

AI工具对他的核心研究并不那么有用(但他也表示可能是不想打破一些已有习惯去尝试)

对他帮助最大的其实是编码和生成论文中的流程图初稿

对于前者,陶哲轩已多次提及。

GPT可以让我不用去管计算任务中究竟用的是何种语言(Python还是SAGE、regex等),几乎只需用自然语言向它提出请求,它就能为我输出合格的代码(尽管我还得再编译一下)

这真的开始改变我的工作流程。

过去由于我害怕困难,一直避免使用代码密集型的任务解决问题;现在,这种情况正在消失,我发现我变得愿意在日常工作中做一些编码。

那么,就来简单看看这次的论文究竟说了什么。

准备长脑子了咳咳。

欧拉函数的单调非递减序列

该论文研究主要涉及函数M(x), 它定义的是数字1到x的最长子序列的长度,在这个子序列中,欧拉函数ψ是非递减的。

(欧拉函数ψ(n)通常用于表示小于或等于n的正整数中与n互质的正整数的数量)

由于M的前几个值是:

1, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 12, 12, …

所以,举个例子:

M(6)就等于5

因为欧拉函数在集合{1,2,3,4,5}或{1,2,3,4,6}上是非递减的,在{1,2,3,4,5,6}上不是。

而由于对于任何素数p,ψ(p)=p-1,我们有M(x)≥π(x)。

其中π(x)是素数计数函数(用于表示小于或等于x的正整数中的素数的数量)

根据经验,这些素数非常接近M(x)的最大长度;Pollack, Pomerance和Treviño已通过数值计算推测出下式

中的x=10⁷ 。

相比之下,以前最著名的上限基本上是以下形式:

对于该式子,在显式常数C=0.81781中,x→∞。

而将该结果与上面的结果相结合,陶哲轩就得到了渐近式

所以在特殊情况下

它既回答了Erdős的问题,也回答了与Pollack, Pomerance和Treviño所密切相关的问题。

陶哲轩介绍,该证明所用方法大多数都很基础(解决数论中最先进结果所需的只是带有经典误差项的素数定理)

基本思想是隔离给定数字1≤n≤x中的一个关键素因子p,因为它对欧拉函数有相当大的影响。

例如,对于“典型”数字n,可以因式分解为:

其中p2是中等大小的素数,p1是明显更大的那个,d则是一个所有素数因子均小于p2的数。这可得出:

因此,如果我们暂时保持d固定,并将n定位到相对较短的区间,那么ψ只能在n中是非递减的——如果p2也同时非递减。

事实证明,特别是在p2很大的情况下,这个方式显著减少了该机制中非递减序列的可能长度。

这个过程可以形式化,达成方式是通过将p的范围划分为各种子区间并检查它 (以及ψ上的单调性假设)如何约束与每个子区间相关联的n值。

而当p2很小时,我们使用因式分解:

其中d非常“平滑”(即没有大素数因子),而p是大素数。我们得到近似值:

并得出结论:为了使ψ不变小,约等式右边的分数基本上必须是分段常数。

再进行一番更仔细的分析之后,我们就能证明初步不等式,最终对于所有正有理数q得到主要定理:

陶哲轩表示,这其实是一个“小奇迹”,与以下事实有关:

公式(4)中分母的大质因数最低项必然等于d的最大质因数,这使得我们能够非常准确地得出公式(5)的左边,从而轻松构建整个公式(5)。

在论文的最后一部分,陶哲轩还讨论了强猜想(1)的一些近似反例,这些例子表明,如果不假设一些“相当强的假设”,可能很难接近证明此猜想。

论文地址:

https://arxiv.org/abs/2309.02325

参考链接:

[1]https://mathstodon.xyz/@tao/111018835694062000

[2]https://terrytao.wordpress.com/2023/09/06/monotone-non-decreasing-sequences-of-the-euler-totient-function/

— 完 —

量子位 QbitAI · 头条号签约

","gnid":"9b6b848e2160b21fa","img_data":[{"flag":2,"img":[{"desc":"","height":"341","title":"","url":"https://p0.ssl.img.360kuai.com/t018a2ad4d053c68b86.jpg","width":"1080"},{"desc":"","height":"526","title":"","url":"https://p0.ssl.img.360kuai.com/t01837e3fd4fd8005a8.jpg","width":"1080"},{"desc":"","height":"720","title":"","url":"https://p0.ssl.img.360kuai.com/t01da12707969a75c63.jpg","width":"1080"},{"desc":"","height":"857","title":"","url":"https://p0.ssl.img.360kuai.com/t01f288ae3bf42d84d5.jpg","width":"1080"},{"desc":"","height":"94","title":"","url":"https://p0.ssl.img.360kuai.com/t0140fe059b32233a23.jpg","width":"606"},{"desc":"","height":"102","title":"","url":"https://p0.ssl.img.360kuai.com/t0152dcabb913cc9f0b.jpg","width":"942"},{"desc":"","height":"124","title":"","url":"https://p0.ssl.img.360kuai.com/t01a3d30ef5ce3415db.jpg","width":"908"},{"desc":"","height":"112","title":"","url":"https://p0.ssl.img.360kuai.com/t01c19e5c1647c64084.jpg","width":"728"},{"desc":"","height":"82","title":"","url":"https://p0.ssl.img.360kuai.com/t01f20ce5ab1e26ad33.jpg","width":"442"},{"desc":"","height":"256","title":"","url":"https://p0.ssl.img.360kuai.com/t0110c791d38e7859f8.jpg","width":"1400"},{"desc":"","height":"106","title":"","url":"https://p0.ssl.img.360kuai.com/t0121d2029abfa98e1f.jpg","width":"776"},{"desc":"","height":"316","title":"","url":"https://p0.ssl.img.360kuai.com/t012fc04c2af49d010a.jpg","width":"1168"},{"desc":"","height":"856","title":"","url":"https://p0.ssl.img.360kuai.com/t019f9c699a39027fc6.jpg","width":"896"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"hbase","pub_time":1694322240000,"pure":"","rawurl":"http://zm.news.so.com/59e303395e597c474ea46c0a6282647f","redirect":0,"rptid":"7990eb4891a92649","rss_ext":[],"s":"t","src":"量子位","tag":[],"title":"陶哲轩发新论文了,又是AI帮忙的那种

闾爸柳1571用python语言输出100以内所有素数 -
仰柴岚13732525429 ______ list = [] #存放计算的结果 list1 = [] #存放质数 n = int(input("计算质数2:")) for i in range(2,n+1): #范围在2-n内 for j in range(2,i): list.append(i%j) if 0 not in list: list1.append(i) list=[] print(list1) 正好在研究这个问题,怎么说呢,感觉这个是正解,...

闾爸柳1571python如何算质数和 -
仰柴岚13732525429 ______ 你好的!import math def is_prime(n): # 简化问题,先利用函数判断是否为质数 if n == 1: # =是赋值,==才是判断,切记切记 return False for i in range(2, int(math.sqrt(n))+1): # 质数判断条件,注意+1 if n % i == 0: return False return True ...

闾爸柳1571用python编程,求:把一个偶数拆成两个不同素数的和,有几种拆法呢?,示例:输入:30、程序显示 -
仰柴岚13732525429 ______ a=int(input("请输入一个偶数")) if a%2==0 : b = [] for i in range(2,a): b.append(i) for i in b: k=2 j=i*k while(j<a): if(b.count(j)>0): b.remove(j) k=k+1 j=i*k for i in b: c=a-i if(c<i):break if(b.count(c)>0): print(a,"=",i,"+",a-i) else: ...

闾爸柳1571python for循环求素数哪里错了 -
仰柴岚13732525429 ______ for i in range(2,100) for j in (2,i-1) if (i%j==0):break else print(i)

闾爸柳1571python输入并判断一个数是否为素数 -
仰柴岚13732525429 ______ if(i==x and i!=1):

闾爸柳1571python语言 超级素数 -
仰柴岚13732525429 ______ 这个是python2版本的,python就在print加括号 自己会缩进吧: l1=[] for x in range(2,2000): l2=[] for y in range(2,x/2+1): if x%y==0: l2.append(y) if not l2: l1.append(x) print l1 print sum(l1)

闾爸柳1571怎么用python求第521025个质数 -
仰柴岚13732525429 ______ from progressive.bar import Bar # pip install progressive POSITION = 521025 def is_prime(n): for i in range(3, n): if n % i == 0: return False return True bar = Bar(max_value=POSITION) bar.cursor.clear_lines(2) bar.cursor.save() n = 3 for i ...

闾爸柳1571python 什么方法求随机数中的素数时间最快 -
仰柴岚13732525429 ______ 直接素数做打表(打表是最实际且常用的办法,别跟我说筛法,那个是教科书上才这么写的,实际应用没人用这个) [for i in your_array if i in prime_number_array] 或者用集合求交集

闾爸柳1571麻烦将循环素数的求法用python写的整齐一点,尤其是求循环数那,能不能多给一些说明,非常感谢 -
仰柴岚13732525429 ______ #判断某数是否为素数 def prime(num): for i in range(2,num): if num%i==0: return False return True#产生某一数字的所有循环数#原理非常简单,将数字转化为字符串进行处理,比如对于数字1234,#我们处理字符串s=“1234”,显然,其循环字...

闾爸柳1571求Python 代码:实现质数的判断 -
仰柴岚13732525429 ______ def isPrime(n): if n <= 1: return False i = 2 while i*i <= n: if n % i == 0: return False i += 1 return True

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024