数论方面算法问题,如何快速判断n!+1为完全平方数的n或者说快速得知一段区间内满足这种性质的n的个数比如4!+1=5*5 +1=11*11 +1=71*71等等拒绝一切只用暴力枚举的思想做的,要枚举也得有极强剪

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 13:31:21
数论方面算法问题,如何快速判断n!+1为完全平方数的n或者说快速得知一段区间内满足这种性质的n的个数比如4!+1=5*5 +1=11*11 +1=71*71等等拒绝一切只用暴力枚举的思想做的,要枚举也得有极强剪

数论方面算法问题,如何快速判断n!+1为完全平方数的n或者说快速得知一段区间内满足这种性质的n的个数比如4!+1=5*5 +1=11*11 +1=71*71等等拒绝一切只用暴力枚举的思想做的,要枚举也得有极强剪
数论方面算法问题,如何快速判断n!+1为完全平方数的n
或者说快速得知一段区间内满足这种性质的n的个数
比如4!+1=5*5 +1=11*11 +1=71*71等等
拒绝一切只用暴力枚举的思想做的,要枚举也得有极强剪枝才行
欢迎一切数论思想、结论或方法!

数论方面算法问题,如何快速判断n!+1为完全平方数的n或者说快速得知一段区间内满足这种性质的n的个数比如4!+1=5*5 +1=11*11 +1=71*71等等拒绝一切只用暴力枚举的思想做的,要枚举也得有极强剪
你先要讲清楚你所说的区间大致是从几到几的区间,这直接影响到什么样子的算法是可以接受的.不要很笼统地说区间越大越好,算法越快越好.
在n比较小的时候当然是枚举最方便,即使是需要考虑大数运算的复杂程度.
当n比较大之后n!的末尾是连续的k个0,k可以通过1:n中5的因子出现次数来得到,这样如果n!+1是平方数的话,其平方根必定是p*10^k+1或者p*10^k-1的形式,这样相当于验证n!=A(A+2),可以先用实数运算算出ln(n!)=ln((n-1)!)+ln(n)(这步的舍入误差其实是很小的),仅当估计得到的A或者A+2非常接近p*10^k的形式时才进一步验证.
当n大到一定程度的时候,A^2>>2A,只需要验证ln(n!)=2ln(A),当A非常接近p*10^k时才进一步验证.
再说一下所谓的“进一步验证”,首先是利用浮点舍入误差分析计算出误差界来估计所谓的“非常接近”,然后对A和A+2进行质因子分解(也要用大数计算).

写一些个人的想法,谈不上解答,大家一起讨论讨论。
*****************************************************
(1)首先分析n!:
当n>=5时,这个数的末位数字必然是0,这个是很显然,因为n!里面有因数2和5,乘起来必然末位是0.
那么n!+1末位必然是1.
如果这个数是完全平方数,n!+1=a^2,那么a的...

全部展开

写一些个人的想法,谈不上解答,大家一起讨论讨论。
*****************************************************
(1)首先分析n!:
当n>=5时,这个数的末位数字必然是0,这个是很显然,因为n!里面有因数2和5,乘起来必然末位是0.
那么n!+1末位必然是1.
如果这个数是完全平方数,n!+1=a^2,那么a的末位数字不是1就是9.
(2)其次看n!的变化规律:
n!到(n+1)!就要扩大n+1倍!当n很大时,这种增长是相当剧烈的。如果我们把1!,2!,3!,...标在数轴上的话,我们会发现他们越来越稀疏。
比如,从10!到11!,这是一个很大的区间了(都已经差一个数量级了),然而这个区间理要考察的数只有两个。所以我觉得题中“得知一段区间内满足这种性质的n的个数”其实不想想象中的那样多,很有可能好大一个区间里只有一个数是n!+1,甚至一个都没有。
(3)结合上面两部分析:
好大的区间内只有少数几个数是n!+1,在这其中有可能是完全平方数的话,只有是“1^2”或者“9^2”这两种类型。那么我觉得只要用试验法就行了。找出有可能是答案的几个数试一下,如果都不是,那就能确定这段区间里没有这样的数.
**************************************************************
本人是学工科的,对《数论》《近世代数》只是略知一二,暂时无法想出纯数学解法,还请谅解。

收起

数论方面算法问题,如何快速判断n!+1为完全平方数的n或者说快速得知一段区间内满足这种性质的n的个数比如4!+1=5*5 +1=11*11 +1=71*71等等拒绝一切只用暴力枚举的思想做的,要枚举也得有极强剪 如何快速验证一个数是否为素数找出了一个随机数,怎么快速判断他是否为素数?要求算法主要思路即可 数论证明题:证明对任意整数a,b,n,如果n|ab且gcd(a,n)=1,则n|b这是出现在《算法导论》第31章数论算法的题. 1+2+3+4+.+n=?快速计算法? 判断n是否为质数的算法步骤中为什么需i〉n-1 新课标必修3中判断整数n(n>2)是否为 一个数论问题求证:当n>1时,1+1/2+1/3+...+1/n不是整数. 是设计一个能够判断一个任意正整数n(n>1)是否为素数的算法 判断N是否为质数的算法里面,i大于N-1或r=0表示什么意思啊? 设计一个算法,判断n-1(n>3)是否为质数! 急!讲一下怎么做?过程?拜托大家~! 数论的一道题求证,若2^m+1为素数,则m=2^n 为什么“判断整数n(n>2)是否为质数”中的最后一部算法步骤要判断“除数>(n-1)”呀? 基因型为AaBbCc,如何快速判断几种配子. 如何理解快速排序算法的思想? 在判断整数n是否为质数的程序算法中为什么i=i+1如题 什么是主观能动性?如何判断主要矛盾主要方面或者次要矛盾次要方面问题? 数论相关问题 如何快速判断英语句子成分? 如何快速判断互质数