당신의 임무는 고정 합계와 간격 [0,1]에서 난수 를 출력 하는 프로그램이나 함수 를 작성하는 것 입니다. n
s
입력
n, n≥1
, 생성 할 난수
s, s>=0, s<=n
, 생성 할 숫자의 합
산출
간격 [0,1] 의 모든 요소와 모든 요소의 합이 동일한 n
부동 소수점 수 의 임의 튜플은 편리한 모호하지 않은 방식으로 출력됩니다. 유효한 모든 튜플은 부동 소수점 숫자의 제한 내에서 똑같이 가능해야합니다.s
n
이것은 n
차원 단위 큐브 내부의 점 과 벡터에 직교 하는 n-1
차원 초평면 의 교차점에서 균일하게 샘플링하는 것과 같습니다 (세 가지 예는 그림 1의 빨간색 영역 참조).(s/n, s/n, …, s/n)
(1, 1, …, 1)
그림 1 : n = 3이고 합이 0.75, 1.75 및 2.75 인 유효한 출력 평면
예
n=1, s=0.8 → [0.8]
n=3, s=3.0 → [1.0, 1.0, 1.0]
n=2, s=0.0 → [0.0, 0.0]
n=4, s=2.0 → [0.2509075946818119, 0.14887693388076845, 0.9449661625992032, 0.6552493088382167]
n=10, s=9.999999999999 → [0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999]
규칙
- 프로그램은 최소한
n≤10
유효한 시스템으로 컴퓨터에서 1 초 안에 완료해야합니다 . - 원하는 경우 프로그램을 상단에서 독점적으로 사용할 수 있습니다.
s<n
, 반 개방 간격 [0,1)의 출력 번호 (두 번째 예를 깨짐) - 언어가 부동 소수점 숫자를 지원하지 않으면 소수점 다음에 10 자리 이상의 소수점 이하 자릿수로 출력을 위조 할 수 있습니다.
- 표준 허점은 허용되지 않으며 표준 입 / 출력 방법이 허용됩니다.
- 이것은 code-golf 이므로 바이트 단위로 측정 된 가장 짧은 항목이 이깁니다.
This is equal to uniformly sampling from the intersection
-나는 그 교차로의 모서리에서 무작위로 선택하는 프로그램을 볼 수 있습니다. 유효합니까?
s==0 or s==3
. 의 다른 모든 값의 s
경우 평면의 면적이 0이 아니므로 해당 평면의 점을 임의로 무작위로 선택해야합니다.
s=2.99999999999, n=3
습니까? 예를 들어 1e-9
?의 배수로 랜덤 실수를 생성 할 수 있습니까?