代码之家  ›  专栏  ›  技术社区  ›  kzh

Jython的随机性

  •  8
  • kzh  · 技术社区  · 15 年前

    当在Jython中使用(伪)随机数时,使用Python随机模块或Java的随机类会更有效吗?

    2 回复  |  直到 15 年前
        1
  •  9
  •   Alexander Ljungberg    15 年前

    在我的Mac上进行一个简单的测试时,python的版本要快得多:

    jython -m timeit -s "import random" "random.random()"
    

    1000000个循环,每个循环最多3个:0.266 usec

    VS

     jython -m timeit -s "import java.util.Random; random=java.util.Random()" "random.nextDouble()"
    

    1000000个循环,最多3个:每个循环1.65 usec

    Jython版本2.5B3和Java版本1.5.01919。

        2
  •  4
  •   Alex Martelli    15 年前

    Java的随机类使用(并且确实必须使用Java的规范)一个线性同余算法,而Python则使用MelShan-Wrutter。梅森公司保证极高的质量(尽管不是 密码 质量!)随机数和异常长的周期(53位精度浮点数,周期2**19937-1);线性同余生成器有众所周知的 issues .如果你不关心随机数的质量,只关心速度,LCG可能会更快,因为它不那么复杂。