

ある二項分布（試行回数 = 1.5*10^11, 成功確率 = 10^(-8))に従う乱数を10個得たいと思っています。  
二項分布の期待値や標準偏差から考えると1500±75くらいの乱数が得られるはずなのですが、OverflowErrorが出てしまいます。  
コードの不備や、エラーの回避方法などございましたら、ご教授お願い致します。以下のコードは念の為 `sys.maxsize` の値の確認も含んでいます。

[code]

    import numpy as np
    import sys
    
    print(sys.maxsize)
    
    arr = np.random.binomial(1.5*(10**11), 1e-08, 10)
    print(arr)
    
[/code]

エラーの内容としては、以下の通りです。

[code]

    line 6, in <module>
        arr = np.random.binomial(1.5*(10**11), 1e-08, 10)
      File "mtrand.pyx", line 3360, in numpy.random.mtrand.RandomState.binomial
    OverflowError: Python int too large to convert to C long
    9223372036854775807
    
[/code]


CC BY-SA 4.0
2020-11-08T15:55:31.270
71802
2020-11-08T16:26:38.643
2020-11-08T16:26:38.643
3060
29063
question
python windows numpy
二項分布に従う乱数を得る際のOverflowError: Python int too large to convert to C long