나는 꽤 (가능한 한) 무작위로 사람을 팀에 할당해야하는 아주 간단한 응용 프로그램을 가지고 있습니다.활성 레코드가 true로 무작위입니까?
현재로서는 몇 가지 다른 방법으로 반복하고 있습니다.
arr.sample().inspect
하지만, 이것들은 진정한 랜덤으로 나타나지 않는
Team.where(assigned: false).order("RANDOM()").first
뿐만 아니라 어레이에로드하고 사용하여 샘플()들은 일반적으로 에지 (1,2두고 .. 8,9, 여기서 count = 10) 마지막까지. AR을 포함하거나 포함하지 않는 더 나은 방법이 있습니까? PSQL rand와 sqlite3 random() 사이에 수학적으로 눈에 띄는 차이가 있습니까?
상기 임의의 분포를 생성하는 루프에 대한 도움을 주시면 감사하겠습니다!
샘플은 항상 제 편이었습니다.이 작업을 수십억 번 시도하고 각 오브젝트가 몇 번 선택 되었습니까? –
@williamthomas 오프셋을 사용하여 임의의 값을 선택할 수 있습니다.이 링크를 확인하십시오 : http://stackoverflow.com/questions/2752231/random-record-in-activerecord – anusha
그래, "괜찮아 보인다" . 캐싱에 영향이 있는지 확실하지 않습니다. – williamthomas