[数学问题] 回文平方数相关问题

medie2005 2008-02-28 09:15:58
定义函数:Y(x,a,b)=(x^2-a) mod b, 其中:a、b为常数,0<=x<b。
对给定的常数C,如何求满足 0<=Y(x,a,b)<C 的所有Y(x,a,b)。

注意:是求所有Y(x,a,b),而不是求所有x。也就是求带限制的值域。另外,若满足 0<=Y(x,a,b)<C 的所有Y(x,a,b)的个数是T,那么,你的算法是否能做到O(T)?
[ O(b)的算法就不要拿出来了 ]。

...全文
305 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shshsh_0510 2008-03-06
  • 打赏
  • 举报
回复
弱问一下:O(b)的咋整?
只对b做素性判断就已经不得了了。这个恐怕得分解b吧?
medie2005 2008-03-05
  • 打赏
  • 举报
回复
先讨论a=0、b=C这样的特殊情况。

如何生成在O(T)时间内生成满足 0 <=Y(x,a,b) <C 的所有Y(x,a,b)。 也就是生成b的二次剩余系。
shshsh_0510 2008-03-05
  • 打赏
  • 举报
回复
二次剩余,但不像mathe说的那样“算不上什么难题”
可以看看华罗庚“数论导引”第3章,奇迹网有下载
medie2005 2008-03-04
  • 打赏
  • 举报
回复
先不说对任意的a,找到在O(T)时间内计算出所有Y(x,a,b)的算法,
就连对a=0、b=C这样的特殊情况,找O(T)的算法就已经是十分困难的了。
medie2005 2008-03-04
  • 打赏
  • 举报
回复
假设我们要计算20位的回文平方数。

我们从回文平方数的中间部分考虑。
我们穷举中间的8位,也就是我提到的a。显然,a只有10000种可能。
我们取b=10^(10+8/2)=10^14,并令C=10^(10-8/2)=10^6.
显然,若x^2是回文数,那么,必有:Y(x,a,10^14)=(x^2-a)%(10^14);
0<Y(x,a,10^14)<10^6.

因此,对任意的a值,如果有算法能做到在O(T)时间内计算出所有Y(x,a,b),那么,我们可以得到一个半约束的解。我们只要再按回文性质,检验得到的解是否真是平方数就可以了。

to dlyme:
应该是(sqrt(a), sqrt(a)+b/2)吧。

  • 打赏
  • 举报
回复
如果C>=b,那么T近似等于b/2,O(b)和O(T)其实是一回事。

如果C<b,x取(sqrt(a), sqrt(a+b/2))范围内的整数遍历一遍,筛选其中符合要求的y值。
mathe 2008-02-29
  • 打赏
  • 举报
回复
这个是关于二次剩余的计算问题,好像算不上什么难题
其实也就是要对任何的t,0<t<C判断t+a是不是关于b的二次剩余
rover___ 2008-02-28
  • 打赏
  • 举报
回复
学习
yaos 2008-02-28
  • 打赏
  • 举报
回复
这问题我看没意义
你能说说和回文的关系么?


33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧