标签: computation

在JavaScript中,为什么在循环中创建函数的具体原因可能是计算上的浪费?

在JavaScript中,为什么在循环中创建函数的具体原因可能是计算上的浪费?

在道格拉斯克罗克福德的JavaScript第39页上,"避免在循环中创建函数.它可能在计算上浪费".我似乎无法弄清楚为什么在循环中创建函数会比外部更浪费.

javascript loops computation

4
推荐指数
1
解决办法
521
查看次数

Ruby没有实时输出

我在Project Euler上遇到了一些问题.其中一个问题:

13195的主要因素是5,7,13和29. 600851475143中最大的素数是多少?

我写了一些代码......它有效:

class Integer

  def primeFactors
  load('/home/arseno/ruby/lib/prime.rb')
  a = []

    for i in (1..self)
      div = self.to_f/i.to_f
      if((div==div.to_i)&&(Prime.prime?(i)))
        a << i
      end
    end
  a
  end
end

puts 13195.primeFactors
Run Code Online (Sandbox Code Playgroud)

输出:

5
7
13
29
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好!现在,当我输入600851475143时,我的终端挂断了(理所当然,它计算了很多东西!)所以我试图做的是把一个puts i放在循环/ if中,这样我就可以捕获输出了实时迭代...

但是通过将其puts i放入循环中,Ruby不会在整个迭代中输出变量; 相反,它保留在某种缓冲区中的值,并在计算完成时将它们冲出.

这个特殊问题永远需要Ruby来计算(它已经运行了10分钟),我怀疑它是在浮点转换中.

为什么Ruby(我的终端?)保持值直到计算结束?相反,我可以实时看到这些值吗?你有更好的方法吗?

ruby primes irb computation

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

用于大整数的GCD算法

我在寻找有关快速GCD计算算法的信息.特别是,我想看看它的实现.

对我来说最有趣的是: - Lehmer GCD算法, - 加速GCD算法, - k-ary算法, - 带有FFT的Knuth-Schonhage.我完全没有关于加速GCD算法的信息,我刚看到一些文章,其中提到它是中等输入(~1000位)上最有效和最快速的gcd计算方法

从理论上看,我们很难理解它们.任何人都可以分享代码(最好是在c ++上)与列表中任何算法\部分的实现或分享任何经验.我将非常感谢任何信息,评论,建议,地方.我有一个使用大整数的类,但我没有方法可以使用它.当然,除了欧几里德和二进制gcd算法,我现在看起来很清楚; 这没有问题.我想在最后得到的主要内容:实现lehmer gcd的代码.(从列表中更容易)

algorithm complexity-theory computation double-precision greatest-common-divisor

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

为什么有一定数量的图灵机?

在Michael Sipser的计算理论导论中,他指出:

"有些语言不具有可判定性,甚至图灵无法识别,因为有无数种语言,但只有相当多的图灵机.因为每个图灵机都能识别单一语言,而且语言比图灵机器多,有些语言无法识别任何图灵机"(178).

图灵机不是可以模拟任何计算机算法的假想机器吗?从理论上讲,您是否可以提出无数的算法?我无法绕过这个概念.我将非常感谢"像我5'这样的解释",但当然,任何帮助都比没有好.

theory algorithm turing-machines computation

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

在Matlab中处理有理数而不失计算精度?

我想在计算中使用这个有理数,而不会丢失Matlab中图片的准确性:

f = 359.0 + 16241/16250.0
Run Code Online (Sandbox Code Playgroud)

我认为存储,例如f = uint64(359.0 + 16241/16250.0)失去准确性,在Matlab中被视为360.

我认为处理这个问题的最好方法是永远不要存储价值,而是存储它的因素

% f = a + b/c
a = 359
b = 16241
c = 16250
Run Code Online (Sandbox Code Playgroud)

然后通过变量a,b和c进行计算,并将结果作为图片给出.

这是保持准确性的好方法吗?

matlab computation

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

图灵机可以执行Quicksort吗?

据我所知,可以使图灵机执行在磁带上编码的指令的循环或迭代。这可以通过确定行分隔符并使Turing机器返回直到达到行分隔符的特定计数(即在循环内部)来完成。但是,图灵机还能执行递归程序吗?

有人可以描述这种图灵机的各种细节吗?

我想,如果可以通过图灵机执行递归,那么还可以执行Quicksort吗?

computability turing-machines computation computation-theory

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

使用Orleans,如何实现分布式计算和分布式数据存储?

我对分布式计算和orleans很陌生,最近对那些\xef\xbc\x8进行了一些研究,不确定orleans是否可以用于新任务。

\n\n

这个任务是,有很多项目属于不同的人,每个项目都有大量的数据。对于每个项目,步骤如下:

\n\n
    \n
  1. 通过计算原始数据得到新的数据。原始数据存储在分布式数据库中,然后新的数据将存储回数据库。MQ或Redis可用于提高性能。
  2. \n
  3. 根据新数据计算汇总值并将汇总值保存回数据库。
  4. \n
\n\n

我的问题是:

\n\n
    \n
  1. 服务器/Grain 负载平衡:没有唯一 ID 的 Grans。最好在所有服务器上运行多个grain以实现负载平衡,每个grain只是从数据库获取数据并进行计算,不需要创建带有id的实例。对于Orleans来说,除了无状态的Grain之外,不允许有没有唯一id的Grain,无状态的Grain只在本地运行。
  2. \n
  3. 长时间运行计算:计算和总结可能需要几秒钟或几分钟才能完成工作,是否建议使用grains\xef\xbc\x9f,似乎文档中不建议使用。
  4. \n
  5. 顺序执行:需要先根据原始数据计算出新值,然后根据新值进行汇总。这意味着用于汇总的grain必须在所有用于计算的grain完成之后才运行。
  6. \n
  7. 数据缓存: Grains通过本地网络从数据库获取数据并将数据保存到数据库,对于orleans是否有减少数据传输的建议\xef\xbc\x9f
  8. \n
\n

.net distributed computation orleans

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

在 R 中获得 0 而不是精确的结果

我怎样才能得到实际的精确结果而不是四舍五入的结果?

result = ((0.61)**(10435)*(0.39)**(6565))/((0.63)**(5023)*(0.60)**(5412)*(0.37)**(2977)*(0.40)**(3588))
Run Code Online (Sandbox Code Playgroud)

出去:

NaN
Run Code Online (Sandbox Code Playgroud)

因为,分母是0

r computation

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

Java:缓存计算结果的数据结构?

我有一个昂贵的计算,其结果我想缓存.有没有办法用两把钥匙制作地图?我在想类似的东西Map<(Thing1, Thing2), Integer>.

然后我可以检查:

if (! cache.contains(thing1, thing2)) {
  return computeResult();
}
else {
  return cache.getValue(thing1, thing2);
}
Run Code Online (Sandbox Code Playgroud)

伪代码.但是那些方面的东西.

java caching tuples map computation

2
推荐指数
1
解决办法
1039
查看次数

为什么 (e^x-1)/x 不能正常工作,但 (e^x-1)/log(e^x) 可以?

我想问一个问题,为什么对于非常接近零的数字计算 (e^x-1)/x 的值不能正常工作(例如,如果 x=10^-15,结果是 1.1102230),但是当我使用公式 (e^x-1)/log(e^x) 是数学等价的,它给了我 1.000000 的正确结果。谢谢。

floating-point r rounding-error computation

2
推荐指数
1
解决办法
1014
查看次数