我一直在试图计算出所有独特排列的的非常的长字(反政教分离运动),虽然我可以计算为排列的话,我有停止生产的问题重复。

一般情况下我只是在我的字符串运行List<T>.Contains()方法,但排列的列表变得如此之大,我不能保持它在内存中。我刚才犯了那个错误,并成功地利用了内存8GB都在我的电脑。为了防止再次发生,我改变了代码所计算的排列附加到文件,并从存储器释放它。

我的主要问题是:如何防止重复排列被添加到我的文件,而无需在内存中加载整个事情是否有可能有选择地加载,例如,第一个几兆? ,扫描这一点,直到该文件被完成前进,或我应该寻找在不同的方向?

这是不是功课,我的数学作业给了一个假设的情况,即计算机可以计算出每秒30个排列,让我弄清楚它需要多长时间来计算所有的排列。这不是一个问题,我并不需要帮助,我只是想知道这需要多长时间现代计算机来执行相同的任务。

有帮助吗?

解决方案

如何使用产生的所有排列的的算法,而不重复?这样,你就不会摆在首位,以检查它们。

有一个谷歌搜索“算法生成排列”变成了几十个引用,让你开始。例如排列生成方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top