그래서 임의로 4 개의 값을 12 개의 다른 변수로 나누는 스크립트를 만들려고합니다. 나는 이것을 올바르게 행할 좋은 방법을 생각할 수 없다. 나는 0.33 (1/12 of 4)에 가깝도록 소수를 무작위로 생각했다. 그러나 그것은 종종 최하위 숫자가 과소 선출되었다. 누구나 전에 이와 같은 것을 시도했거나 가능한 한 무작위로 균일하게 고르지 않게 만드는 방법에 대한 훌륭한 아이디어가 있습니까?임의의 부등호로 숫자 나누기
7
A
답변
17
좋아하는 난수 생성기에서 12 개의 난수를 생성하려면 r1..r12
이라고합니다.
모두 합치면 sum
으로 전화하십시오.
첫 번째 임의 분수는 4
입니다. (r1/sum)*4
입니다. 나머지는 분명해야합니다.
8
1보다 큰 임의의 숫자를 생성하고 필요한 합계로 크기를 조정 한 후 생성하십시오.
예 :
- 필요한 합계 4
- 난수 : 1 2 3 4 5 6 7 8 9 10 11 12
- 합계 = 78 개
- 재배 율화 번호 :
1은 (1 * 4)/78로 다시 조정된다.
,691,363,2102로 재 스케일링 (2 × 4)/78
...
12 (12 * 4)/78
2
다음의 알고리즘을 재 스케일링이 가능하다고 가정하면, 균일하게 분포 된 파티션을 제공 연속 범위 (또는 적어도 복제 확률이 무시할 수있는 충분히 많은 가능한 값을 갖는 불연속 범위 이상)에 걸쳐 균일하게 분산 된 난수를 생성 할 수 있습니다.
k
는 값으로 t
의 격벽을 제조 :
의 범위
[0, t]
k-1
에 균일하게 분포 된 값들을 생성한다.정렬하고 처음에
0
및 끝에t
을 추가하십시오.인접한 차이점을 파티션으로 사용하십시오.
관련 문제
- 1. 임의의 숫자
- 2. 여러 개의 숫자 나누기
- 3. 나누기 및 숫자 추가
- 4. 파이썬 나누기 숫자
- 5. BigIntegers 숫자 나누기
- 6. 프롤로그 : 숫자 나누기
- 7. 문자 값 나누기 숫자
- 8. 숫자 집합에서 임의의 숫자 선택
- 9. 나누기 두 개의 숫자 여기
- 10. 목표 C 임의의 숫자
- 11. 임의의 숫자 선택
- 12. while 루프의 임의의 숫자
- 13. 임의의 숫자 집합 정의
- 14. .delay() 사이의 임의의 숫자
- 15. 장소 임의의 숫자
- 16. 은 임의의 숫자
- 17. 인쇄 (200) 임의의 숫자
- 18. SpriteKit에서 임의의 숫자 만들기
- 19. 하스켈에서 임의의 숫자
- 20. 히스토그램에서 임의의 숫자 그리기
- 21. 같은 임의의 숫자
- 22. 포인터가있는 임의의 숫자 (C)
- 23. C에서 임의의 숫자 생성
- 24. 임의의 숫자 범위 생성
- 25. 반복되지 않는 임의의 숫자
- 26. 목표 C 임의의 숫자
- 27. 집합에서 임의의 숫자 선택
- 28. 라벨의 문자에 임의의 숫자
- 29. 임의의 반복되지 않는 숫자
- 30. 자바의 임의의 숫자
정말 멋졌습니다! 고마워요! – Tom
이 솔루션은 논리적 인 방법으로 균일하게 분포 된 숫자 집합을 생성하지 않지만, 진정으로 획일적 인 무언가를 생성하지 못하는 이유를 이해하지 못하기 때문에 대부분의 사람들이 선택하는 솔루션이라고합니다. –
@ woodchips :이 비판에 대한 몇 가지 구체화를 제공하는 것이 도움이되었지만 (균일 한 경우에도), 균일하게 분산 된 파티션을 생성하는 대답을 제공하는 것이 더 도움이됩니다.나는 그것이 옳은 것인지 잘 모르겠지만 후자를하려고했습니다. – rici