相关疑难解决方法(0)

92
推荐指数
7
解决办法
10万
查看次数

对HashTable性能问题感到好奇

我读到Haskell中的哈希表存在性能问题(2006 年的Haskell-Cafe和2009年的Flying Frog Consultancy的博客),因为我喜欢Haskell,所以我很担心.

那是一年前,现在的状况是什么(2010年6月)?GHC中是否修复了"哈希表问题"?

haskell hashtable ghc

50
推荐指数
3
解决办法
1万
查看次数

Eratosthenes的分段筛子?

制作一个简单的筛子很容易:

for (int i=2; i<=N; i++){
    if (sieve[i]==0){
        cout << i << " is prime" << endl;
        for (int j = i; j<=N; j+=i){
            sieve[j]=1;
        }
    }
    cout << i << " has " << sieve[i] << " distinct prime factors\n";
}
Run Code Online (Sandbox Code Playgroud)

但是当N非常大并且我无法在内存中保存那种数组时呢?我已经查找了分段筛选方法,它们似乎涉及到找到素数直到sqrt(N),但我不明白它是如何工作的.如果N非常大(例如10 ^ 18)怎么办?

algorithm primes sieve-of-eratosthenes prime-factoring factors

38
推荐指数
3
解决办法
3万
查看次数

优化Haskell代码,计算低于200万的所有素数之和

Euler项目中的问题10.我在那里看到了一些讨论但只针对C.

我使用以下代码来计算:

print . sum . sieve $ [2..2000000] where
    sieve [] = []
    sieve (x:xs) = x : sieve (filter ((/= 0) . (`mod` x)) xs)
Run Code Online (Sandbox Code Playgroud)

计算需要很长时间.我想知道是否有更有效的方法来计算它?

optimization primes haskell

3
推荐指数
2
解决办法
920
查看次数