编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 Spoj:Prime Generator
指数 -> 竞赛
查看上3d中奖规则主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下3d中奖规则主题
作者 信息
Riaderu.




邮政发布: Fri Sep 04,2009 11:09 AM  帖子主题:Spoj:Prime Generator

嗨伙计们,我刚刚注册了spoj,我开始做出问题。我正在做的第二个是主要发生器(Prime1)。

起初我尝试使用Fermat的定理和与二次探测相关的定理尝试了概率性原始测试。它超时了我自己的笔记本电脑。然后我试过米勒 - 拉比,它有时很慢,有时给了我错误的答案。我现在正在研究3d中奖规则优化的Eratosthenes的筛子,它应该为这个问题工作,但我想了解更多。我在这种东西上发现了良好的材料。甚至谷歌也失败了。

有谁知道任何有关Prime Testive / Sieve算法的简单英语描述的网站? (我太可怜/便宜/懒得了解书)
我已经完成了5个Google搜索页面。

是的,我知道Wikipedia,它太短暂和技术(我必须DFS与我在每个页面上不知道的单词的链接,它变得令人讨厌)。
赞助
赞助
赞助
赞助
沙翠




邮政发布: Fri Sep 04,2009 11:28 AM  帖子主题:Re:Spoj:Prime Generator

Prime1在开始时有点棘手,但我的解决方案很简单:
使用筛子所有值,并检查每个值是否是素数(布尔值)
然后只需将输入分为两个部分,在10 ^ 6之前和10 ^ 6之后,您可以为输入999900000 - 1000000000(最坏情况)有3d中奖规则单独的算法
此外,Miller-Rabin对此太慢,尝试使用C / C ++,我开始使用Java / Python ...但它太慢,肯定不是O(log n)...
我还建议这篇文章(下文),快速实施狂欢节(分段)的筛子,这对于Subinterval [P,Q]中的任何素数,这会导致(QP)日志(log(q )))+ b pi(sqrt(q))时间,但如果你只是不想学习,只需在Wolfram Mathworld上搜索它 微笑
希望有帮助......

链接到文章: http://www.ieeta.pt/~tos/software/prime_sieve.html
分析模式




邮政发布: Fri Sep 04,2009 3:49 PM  帖子主题:Re:Spoj:Prime Generator

我没有看那个链接,但你不需要任何H4x筛子实现。

这是3d中奖规则提示:你没有筛分整个1..1000000000。筛选它的一部分,并使用以智能方式获得的信息。
SaltPro15




邮政发布: Fri Sep 04,2009 9:41 PM  帖子主题:Re:Spoj:Prime Generator

您试图使用激光引导的核弹来挤出飞行 很高兴 随着Shah-Cuber和分析模式已经暗示,有一种更简单的方法
A.J.




邮政发布: Fri Sep 04,2009 9:46 PM  帖子主题:Re:Spoj:Prime Generator

我相信这句话是“使用爬犁杀死飞行”,但它传达了相同的信息。

我也相信忽视显而易见的是这个问题中的3d中奖规则太常见的错误。
Riaderu.




邮政发布: Fri Sep 04,2009 10:33 PM  帖子主题:Re:Spoj:Prime Generator

好吧,我现在可以杀死一只苍蝇,但我想更多地了解我的雪橇锤,因为最好的解决方案跑为0.00秒,我现在想击败它。如果只有我可以看到他的代码有多长。

@ Shah-Cuber
谢谢,但我已经想到了可行的解决方案。
基本上,首先筛到SQRT(n)+ 1,然后筛分m<-> n.

@Analysis mod.
我看了那个网站和他的源代码(这是>400行)但无法理解他的“改进”。
但是,我确实尝试做一些预筛分,并捆绑,使我的算法完全忽略另3d中奖规则站点上描述的数字2,3,5。这使得要被认为的数字减少了〜3.75的因素。
Riaderu.




邮政发布: 周六05年9月1日下午1:51  帖子主题:Re:Spoj:Prime Generator

我制作了我的eRasto筛子的短版本。 Spoj给了我“错误的答案”,我无法弄清楚为什么。有人帮忙吗?
我是C ++的新手,我必须在C ++中写下这个问题。
不要告诉我它的输出格式错误......



Prime4.cpp.
 Description:
为什么....

下载
 Filename:  prime4.cpp
 Filesize:  1.79 KB
 Downloaded:  792 Time(s)

SaltPro15




邮政发布: 2009年9月5日星期四2:37 PM  帖子主题:Re:Spoj:Prime Generator

Spoj也有3d中奖规则论坛,但我会看看
赞助
赞助
赞助
赞助
沙翠




邮政发布: 2009年9月5日星期六下午3:03  帖子主题:Re:Spoj:Prime Generator

它只花了一分钟,直到我发现3d中奖规则错误的答案:如果你放入了输入; 1 2 10,您的程序输出3 5 7,当它假设为2 3 5 7(包含),我想你可以自己弄清楚你的问题= p
此外,我不认为你的筛子足够有效......

编辑:在3d中奖规则不相关的音符上,你是来自a.y.j的同3d中奖规则河流吗?
Riaderu.




邮政发布: SAT 2009年9月5日4:31 PM  帖子主题:Re:Spoj:Prime Generator

@ Shah-Cuber
好的,我修好了,这是重用变量的愚蠢错误。是我。此外,此代码至少在笔记本电脑上立即运行999900000-1000000000。


我修复了错误并再次提交了错误的答案......
Cyril.




邮政发布: 2009年9月9日星期二:下午9:28  帖子主题:Re:Spoj:Prime Generator

我认为确定性Miller-Rabin对此非常可行。只需使用证人2,7和61.考虑到Python具有内置的POW(A,B,M),其计算了二进制指数的^ B mod m ...您可以承受非常懒惰。

当然,是高尚的,我首先实施双筛方法。 (我的第3d中奖规则懒惰的米勒 - 拉布林尝试得到了Wa,所以我放弃了。)
A.J.




邮政发布: 2009年9月8日星期二9:43 PM  帖子主题:Re:Spoj:Prime Generator

很高兴让你回来,西里尔。而且我相信米勒 - 拉比实际上是有用的,并且是良好的做法。话虽如此,我认为这不是解决这个问题的唯一方法(如西里尔所说的)
Naivecoder.




邮政发布: 星期五2012年1月13日12:19 AM  帖子主题:Re:Spoj:Prime Generator

嘿Cyril ......
据说这个Prime发生器问题可以通过Miller-Rabin完成......
Miller-Rabin: - a ^ d mod n = 1 .OK?
如果选择A = 61和D,则选择99999
鉴于3d中奖规则人使用c或c ++?
从上3d中奖规则显示帖子:   
   指数 -> 竞赛
查看上3d中奖规则主题 告诉3d中奖规则朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下3d中奖规则主题

11  [ 13 Posts ]
跳到:   


Style:  
搜索: