낮은 값에서 높이까지 범위의 n 개의 정수 값 x [] 배열이 있습니다. 따라서 m : = high-low + 1 가능한 값이 있습니다. 입력 값이 inteval [low, high]에 걸쳐 얼마나 균일하게 분포되어 있는지 계산하는 알고리즘을 지금 검색하고 있습니다. 값이 가능한 한 균일하면 1을 출력하고 모든 x [i]가 동일하면 0을 출력해야합니다.
이제 문제는 알고리즘이 n이 m보다 훨씬 낮고 또한 훨씬 높을 때 작동해야한다는 것입니다.
감사합니다
내 경우에 적합한 솔루션을 찾았습니다.
먼저 값의 누적 히스토그램을 계산합니다 ([min, max]의 가능한 모든 값 v를 | {x [i], x [i] <= v} |에 매핑하는 이산 함수)
그런 다음 히스토그램을 통해 대각선까지의 거리 (0,0에서 m, n까지)를 제곱 방식으로 계산합니다. 히스토그램의 모든 지점에서 해당 선까지의 거리 제곱을 합산합니다.
이 알고리즘은 정규화 된 표준을 제공하지 않지만 매우 적은 수의 샘플에서 잘 작동합니다. 균일성에 따라 두 개 이상의 값 세트를 비교하는 알고리즘 만 필요하며이 알고리즘이이를 수행합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다