python - 我应该在 Python 中腌制素数以产生素数吗?
问题描述
我在 Python 中生成了一个算法来筛选前 n 个素数,然后列出索引 n 和第 n 个素数 p_n# 的有序对。
接下来,我基于 n 和 p_n# 评估一个函数,最后是目标,以确定函数 f(n,p_n#) 是否是单调的,因此该算法评估序列从上升到下降的位置,反之亦然。此处列出了代码的价值。
这当然是内存密集型的,我的电脑最多只能处理 2,000,000 左右的数字。
在任何给定点上,我真正需要的只是 f(n-1)、有序对 n、p_n#、素数 p_n(以便快速找到下一个素数)和一个布尔值,指示序列最近是上升还是下降.
在保持速度的同时避免在内存中存储十万或更多的素数和素数的最佳方法是什么?
我认为第一步是做一个筛子,找到一个高于某个给定素数的下一个素数,而不是找到低于某个最大值的每个素数。然后我可以评估函数的下一个值。
但我也想知道一次筛选一批说 100 个素数是否会更好。这可以通过一些有序三元组 [n,p_n,p_n#] 的“永久列表”来支持,该列表仅包含我在运行前生成的 n=100,200,300,...。搜索时,我发现了“腌制”列表的概念,想知道这是否是使用它的正确场景,还是有更好的方法?
解决方案
推荐阅读
- reactjs - 如何在反应应用程序中全局捕获错误
- sql - 如何在具有有限选择的 Postgres 表中创建列
- angularjs - 在Angularjs中的指令之间传递回调
- amazon-web-services - AWS Cognito 用户池使用 Google Captcha 忘记密码
- elasticsearch - 如何让关键字映射在 NEST 中工作?
- c++ - 在包含的文件中抑制关于#pragma pack 的警告
- javascript - Vuex Mutation 正在运行,但组件在 vue 开发工具中手动提交之前不会更新
- python - 在 Python 中快速实现 N-Grams
- scala - 如何在scala中实现类似策略模式的东西
- python - 用scrapy抓取表格,网站有不寻常的html代码。