통계 상, 때로는 두 개의 데이터 샘플이 동일한 기본 분포에서 나온 것인지 아는 것이 유용합니다. 이를 수행하는 한 가지 방법은 2- 표본 Kolmogorov-Smirnov 검정 을 사용하는 것 입니다.
당신의 임무는 두 개의 정렬되지 않은 음이 아닌 정수 배열을 읽고 테스트에 사용되는 주요 통계를 계산하는 프로그램을 작성하는 것입니다.
배열 A
과 실수가 주어지면 x
분포 함수 F
를 다음 과 같이 정의하십시오.
F(A,x) = (#number of elements in A less than or equal to x)/(#number of elements in A)
두 배열을 감안 A1
하고 A2
, 정의
D(x) = |F(A1, x) - F(A2, x)|
2- 표본 Kolmogorov-Smirnov 통계량은 D
모든 실수 의 최대 값입니다 x
.
예
A1 = [1, 2, 1, 4, 3, 6]
A2 = [3, 4, 5, 4]
그때:
D(1) = |2/6 - 0| = 1/3
D(2) = |3/6 - 0| = 1/2
D(3) = |4/6 - 1/4| = 5/12
D(4) = |5/6 - 3/4| = 1/12
D(5) = |5/6 - 4/4| = 1/6
D(6) = |6/6 - 4/4| = 0
두 배열의 KS 통계량 1/2
은 최대 값 인입니다 D
.
테스트 사례
[0] [0] -> 0.0
[0] [1] -> 1.0
[1, 2, 3, 4, 5] [2, 3, 4, 5, 6] -> 0.2
[3, 3, 3, 3, 3] [5, 4, 3, 2, 1] -> 0.4
[1, 2, 1, 4, 3, 6] [3, 4, 5, 4] -> 0.5
[8, 9, 9, 5, 5, 0, 3] [4, 9, 0, 5, 5, 0, 4, 6, 9, 10, 4, 0, 9] -> 0.175824
[2, 10, 10, 10, 1, 6, 7, 2, 10, 4, 7] [7, 7, 9, 9, 6, 6, 5, 2, 7, 2, 8] -> 0.363636
규칙
- 함수 또는 전체 프로그램을 작성할 수 있습니다. 입력은 STDIN 또는 함수 인수를 통해 이루어질 수 있으며 출력은 STDOUT 또는 리턴 값을 통해 이루어질 수 있습니다.
- 두 배열에 대해 일관된 한 입력에 대해 모호하지 않은 목록 또는 문자열 형식을 가정 할 수 있습니다.
- 귀하의 언어에 내장 언어가 사용 된 경우에는 사용할 수 없습니다.
- 답은 유효 숫자 3 자리 이상이어야합니다.
- 이것은 code-golf 이므로 가장 적은 바이트의 프로그램이 승리합니다.
A
이 아래에 length(A)
있습니까?)