值得记住素数测试吗?
Is it worth memoising a primality test?
我还有另一个回溯挑战,我必须得到所有可能的素数组合,这些组合加起来就是一个特定的数字。我已经使用维基百科的通用算法完成了任务,但是对于数字 100,运行了一个多小时,而且到下课仍然没有完成。我想知道:记忆(你怎么拼写?)会显着提高算法的性能(比如,它会让它明显更快)吗?我正在使用c ++,并且该函数被调用了大量次。我正在使用递归回溯,我似乎记得对于简单的问题,它大致是O(n!)。
在函数外部创建一个数组,检查主要性和可从该函数访问。全局或静态,具体取决于使用的语言。该数组将满足所有找到的主号码。
If the number in question is in the array, return true.
if number is less or equal than squared max number in the array, return false.
Check for divisibility for all known primaries
if the number is primary, write it into array and return true
return false
这种添加非常简单。这样做并检查更改的时间。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 尽管测试成功,CppUnit测试核心仍被丢弃.为什么
- 数据成员SFINAE的C++17测试:gcc vs clang
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么二进制搜索在我的测试中不起作用
- 从父数组测试用例构造二叉树失败
- 试图对缓存进行跨步测试,但程序并没有结束
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- OpenGL在启用深度测试时不会丢弃我的碎片
- 为测试目标创建具有不同源文件夹的文件
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 换位表导致测试失败(但在游戏中运行良好)
- 用于交叉编译和CMake的预处理器宏的单元测试
- 谷歌测试中的期望值存储在哪里
- 如何在for循环中包含两个索引值的测试条件
- 在cygwin中测试新的boost安装时出现cpp错误
- 值得记住素数测试吗?
- DirectX碰撞测试.-自己制造发动机值得吗