12
파이썬에서는 특정 시드를 사용하여 임의의 숫자를 생성하지만 전역 상태를 다시 시드하지 않고 가장 좋은 방법은 무엇입니까? Java에서는 다음과 같이 간단히 쓸 수 있습니다."새로운 임의()"와 같이 임의로 시드를 설정하십시오.
Random r = new Random(seed);
r.nextDouble();
표준 및 Math.random()
은 영향을받지 않습니다. 파이썬에서 볼 수있는 최상의 솔루션은 다음과 같습니다.
old_state = random.getstate()
random.seed(seed)
random.random()
random.setstate(old_state)
이 관용적 Python입니까? 오래된 시드를 "복원"할 필요가없는 Java 솔루션보다 훨씬 깨끗합니다. 나는 이것을 할 수있는 더 좋은 방법이 있는지 알고 싶다.
어떻게 든 [임의의 문서] (http://docs.python.org/library/random.html)에서이 주석을 놓쳤습니다. "자신이 만든 인스턴스를 인스턴스화하여 공유 상태. " 감사! –
@BenAlpert, 예, 내가 다시 확인하려고했을 때도했습니다. 그러나 나는 이전에'dir (random)'에서'Random'을 본 것을 알고 있었고, 나는 그것을 보았을 때 소스에있었습니다. 'Random' 클래스 자체가 문서에 자체 리스팅을 가지고 있지 않은 이유를 확신하지 못합니다. – senderle
[내 자신을 포함하여] 문서에 무엇이 있는지 지적하기 위해 많은 사람이 투표를 많이받는 것은 항상 저에게 놀라운 일입니다. (http://stackoverflow.com/a/3909907/355230). 그것을 읽음으로써 대답 될 수있는 질문에 대해서도 마찬가지입니다 ... – martineau