相关疑难解决方法(0)

与Project Euler的速度比较:C vs Python vs Erlang vs Haskell

我已经采取了问题#12项目欧拉作为编程练习和我的(肯定不是最优的)实现在C,Python和Erlang和Haskell的比较.为了获得更高的执行时间,我搜索第一个三角形数字,其中有超过1000个除数而不是原始问题中所述的500.

结果如下:

C:

lorenzo@enzo:~/erlang$ gcc -lm -o euler12.bin euler12.c
lorenzo@enzo:~/erlang$ time ./euler12.bin
842161320

real    0m11.074s
user    0m11.070s
sys 0m0.000s
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

lorenzo@enzo:~/erlang$ time ./euler12.py 
842161320

real    1m16.632s
user    1m16.370s
sys 0m0.250s
Run Code Online (Sandbox Code Playgroud)

Python与PyPy:

lorenzo@enzo:~/Downloads/pypy-c-jit-43780-b590cf6de419-linux64/bin$ time ./pypy /home/lorenzo/erlang/euler12.py 
842161320

real    0m13.082s
user    0m13.050s
sys 0m0.020s
Run Code Online (Sandbox Code Playgroud)

二郎:

lorenzo@enzo:~/erlang$ erlc euler12.erl 
lorenzo@enzo:~/erlang$ time erl -s euler12 solve
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> 842161320

real    0m48.259s
user    0m48.070s
sys 0m0.020s
Run Code Online (Sandbox Code Playgroud)

哈斯克尔: …

c python erlang performance haskell

645
推荐指数
14
解决办法
13万
查看次数

积分运算符quot与div

Type类积分有两个操作quotdiv,但在哈斯克尔2010语种报告它没有规定他们应该做的事情.假设这div是不可分割的,有什么quot不同,或者目的是quot什么?你什么时候使用一个,而另一个?

haskell

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

quotRem和divMod之间的区别何时有用?

来自haskell报告:

如果y不为零,则quot,rem,div和mod类方法满足这些定律:

(x `quot` y)*y + (x `rem` y) == x
(x `div`  y)*y + (x `mod` y) == x
Run Code Online (Sandbox Code Playgroud)

quot是整数除法被截断为零,而结果div 被截断为负无穷大.

例如:

Prelude> (-12) `quot` 5
-2
Prelude> (-12) `div` 5
-3
Run Code Online (Sandbox Code Playgroud)

结果如何截断的区别在哪里?

haskell division

42
推荐指数
3
解决办法
8254
查看次数

在Haskell中%做了什么?

我习惯使用%来表示其他语言中的"modulo".在Haskell中,我们必须使用mod x yx `mod` y.那么,Haskell中使用的这个符号是什么?

haskell modulo

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

标签 统计

haskell ×4

c ×1

division ×1

erlang ×1

modulo ×1

performance ×1

python ×1