2017-07-01 40 views
1

由此我的意思是我需要Python在一種條件下生成任意隨機數,它必須大於用戶定義的數字(可以說「x」),換句話說,它就像是說x> num>無窮大。如何使用Python生成大於指定值的隨機數字?

我嘗試使用隨機模塊,但似乎無法弄清楚什麼的,因爲我想是這樣的

import random 
import math 
inf=math.inf 
x=15 
random.randint(x,inf) 

但因爲無限註冊爲一個浮點數和不工作randint函數只能用於整數。我也嘗試過這樣的事情

import random 
import math 
inf=math.inf 
x=15 
random.uniform(x,inf) 

這應該工作,因爲統一的功能與浮動點的工作,但它只是結束了每次返回無窮大。

這意味着我需要在不使用infinity(或math.inf)的情況下完成這個任務,我只需要範圍有一個最小值(x)而沒有最大值。有什麼建議麼?

我在OS X上運行的優勝美地的Python 3.6.0b4

+0

你真的想要一個整數嗎?然後'random.randint(x,sys.maxsize)'會做到這一點,請參閱https://stackoverflow.com/q/7604966/3001761 – jonrsharpe

+0

如果你沒有問題,那麼你可以使數字與你的記憶一樣大能適應。 –

+2

均勻分佈只能在有界區間上定義。所以,試圖在某種價值和無窮之間使用它是沒有意義的。 –

回答

1

沒有特定的最大整數。請參閱this article

改爲使用sys.maxsize

sys.maxsize給出最大值的整數Py_ssize_t類型的變量可以採用的整數。它通常在32位平臺上是2^31-1,在64位平臺上是2^63-1。

限制上限某些較小值,一個可以簡單地一個最大小於由sys.maxsize隱含限定。例如,64位最大有符號整數9,223,372,036,854,775,807可能被限制爲999,999,999,999,999L小數點後15位。你可以使用那個或者小於sys.maxsize所暗示的長整數。

+0

有沒有辦法將輸出限制到一定數量的數字? –

+0

@JadMoussa是的,當然看到我上面編輯的答案。感謝接受! – TomServo