내가 코드의 시작 부분에 갇혀 있기 때문에 나는 정말로 도움이 필요하다.파이썬에서 기하 급수적으로 랜덤 생성기 (로그 함수)가 배포 되었습니까?
히스토그램의 지수 분포를 조사하는 함수를 작성해야합니다. 함수는 x = -log (1-y)/λ입니다. λ는 상수이고 코드에서 lamdr로 언급하고 단순히 10을주었습니다. 난 N (난수의 수) 10을주고 코드를 실행했지만 결과와 생성 된 난수는 완전히 다른 결과를 나타 냈습니다. 아래에서 코드를 찾을 수 있습니다. 무엇이 잘못되었는지 알지 못합니다. 사람들이 저를 도울 수 있기를 바랍니다 !! (저는 파이썬 2를 사용합니다)
import random
import math
N = raw_input('How many random numbers you request?: ')
N = int(N)
lamdr = raw_input('Enter a value:')
lamdr = int(lamdr)
def exprand(lamdr):
y = []
for i in range(N):
y.append(random.uniform(0,1))
return y
y = exprand(lamdr)
print 'Randomly generated numbers:', (y)
x = []
for w in y:
x.append((math.log((1 - w)/lamdr)) * -1)
print 'Results:', x
과 다른 이유로 NaN/예외가 생성 될 수 있습니다. 매번 두 번 실행하면 매번 다른 결과가 나옵니까? –
임의의 숫자와 결과에 대한리스트가 두 개 있습니다. 주어진 방정식에 따라 다르지만 일치하지 않습니다. 예를 들어 무작위로 생성 된 y 값에 대해 완전히 x 값을 얻었습니다. – aleatha
'lambdr'가 될 것으로 기대합니까? 'random.uniform()'에 대한 seed 값을 호출합니까? 만약'random.seed (lambdr) '를 먼저 써야한다. 그런 다음 주어진'lambdr' 값에 대해 동일한 일련의 숫자를 얻습니다. 위의 – eddiem