2012-04-16 4 views
4

빠른 질문이 있습니다. 나는 현재 random.choice()를 사용하여 목록에서 선택하고 왜 항상 같은 항목을 호출하는지 궁금해하고있다. 일단 프로그램을 중지하고 다시 시작하면 변경됩니다. 아무도 나에게 무작위 클래스가 어떻게 작동하는지 설명 할 수 있을까요?random.choice 항상 동일

감사

+7

는'()'파괴되지 않는 선택합니다. 오류가 코드의 어딘가에 있으므로 코드를 보여주십시오. –

+6

http://dilbert.com/strips/comic/2001-10-25/ –

+1

프로그램의 길이를 사용할 때마다 같은 값으로'random.Random (some_value)'를 사용하고 있습니까? – agf

답변

5

이 가장 가능성이 무엇을하고 있는지에 대한 나의 추측이다 :

같은 씨앗과 실제 임의의 클래스를 사용하고, 새로운 인스턴스마다 제작하는 경우
import random 

l = [1,2,3,4,5] 
random.Random(500).choice(l) 
# 4 
random.Random(500).choice(l) 
# 4 
random.Random(500).choice(l) 
# 4 

, 그런 다음 동일한 의사 랜덤 작업을 수행하고 있습니다. 이것은 실제로 향후 루틴 실행시 재현성있는 임의 화를 가능하게하는 기능 (시드)입니다.

l = [1,2,3,4,5] 
r = random.Random(500) # seed number is arbitrary 
r.choice(l) 
r.choice(l) 

을 또는 편리한 방법을 사용합니다 :

하나는 씨앗이 할 random.choice(l)

+2

나는 이것이 가능하지 않다고 말할 것이다. "프로그램을 멈추고 다시 시작하면 변경됩니다." –