2011-03-31 3 views

답변

7

당신은 파이썬> = 2.6 random.triangular()를 사용할 수 있습니다.

+0

+1 복잡한 기능을 고안하지 않기! – Blender

+0

완벽. 고맙습니다. –

+0

글쎄, 솔직히 말해서 나는 이것이 올바르지 않다고 믿는다. 삼각형의 확률 함수를 갖지만 중간 값이 극값의 두 배가 될 확률에 대한 요구 사항은 추가적인 제약을 준다. 삼각형 PDF는 필요 없지만 오히려 "집 모양의"PDF가 필요합니다. 값이 x 인 (min, max)의 균일 한 PDF와 (min, max)의 삼각형 PDF의 합이 P (min 물론 PDF에 대한 R의 적분 값은 1입니다. –

0

블렌더가 지적한 것처럼 좀 더 구체적으로 설명해야합니다. 그러나 가장 간단한 경우에는 균일 변량에서 Triangular Distribution을 생성 할 수 있습니다.

1

시험 후이 작동하는 경우 (매우 읽을 수 없습니다입니다 미안 경우) 참조 :이 잘되지 않은 경우

import random 

def randIntWeight(min, max): 
    distanceFromMedian = random.uniform(0, (max - min)/2.0) 

    return (max - min)/2.0 + distanceFromMedian * (-1) ** (random.randrange(-1, 0)) 

난 아직도 내 확률 이론에 위로 솔질하고있어, 그래서 하시기 바랍니다 저를 수정합니다.

n = random.triangular(10, 20) 

n는 부동 소수점 값이됩니다, 그래서 당신은 int로 변환해야합니다

+0

이렇게하면 0에서 5 사이의 부동 소수점이 반환됩니다. –

+0

이 방법은 작동하지 않으므로 반환 값에'min'을 추가해야합니다. 또한 부동 소수점을 반환하고 함수 이름이 명확하지 않습니다. (sh * t 까다로운 소리 - _-) –

관련 문제