切换到宽版
  • 5574阅读
  • 0回复

关于sm-star的”悬赏了(200)“一帖中的”n^n^n mod 1000003“问题进一步的探索与研究 [复制链接]

上一主题 下一主题
离线xyj
 
只看楼主 倒序阅读 0 发表于: 2008-02-02
在完成此题时已是深夜11点,所以当时没有在探究下去。
这次JSOI2008冬令营时,有幸听到南京航空大学李立新教授关于”程序设计与数学“的讲座(P。S。他实际上是给他徒弟,常州一中的林厚从,推广新书《程序设计与数学》),了解到更多的关于计算乘幂的编程知识,所以对程序进了更深一步的研究。
第一个想到的算法也是直接乘幂,使用exp、ln;
第二个算法是李立新教授的关于乘幂运算的初级版,效率较第一算法好一些,但是七个点(4、5、10、20、100、1000、10000)全部失败。
第三个算法是我在原贴提供的算法,能够过全部的点,将数据提升到30000000也能成功,使用了费马小定理。
第四个算法是结合了前两个的算法,在使用费马小定理时,乘幂的运算还是很厉害,所以在进行乘幂运算时使用了李立新教授的算法,时间基本上都在0.02s 左右。
具体的比较见附件中的表格。

又及:本题我个人命名为prime,因为1000003是一素数~~
描述:解压打开
附件: prime测评.rar (7 K) 下载次数:56
快速回复
限100 字节
 
上一个 下一个