하한
적어도 쿼리는 두 경우를 구별 할 필요합니다.Ω(1/ϵ√)
시퀀스 고려 주어진 ε , 2 ε , 3 ε , 4 ε이 , ... ,에 해당 되도록 선택 1 + ⋯ + N = 1을 . 특히, 우리는 n ≈ 1 / √를 취할 수 있습니다a1,…,anϵ,2ϵ,3ϵ,4ϵ,…na1+⋯+an=1 .n≈1/2ϵ−−√
이제 새로운 시퀀스를 생성 ' 1 , ... , ' N 감산하여 상기 시퀀스의 하나의 요소를 변경함으로써 ε을 . 즉, ' 1 = 1 , ' 2 = 2 점을 제외하고, 등, A는 " 나는 = I를 - ε . 공지 사항이 ' 1 + ⋯ + ' N = 1 - ε .a′1,…,a′nϵa′1=a1a′2=a2a′i=ai−ϵa′1+⋯+a′n=1−ϵ
얼마나 많은 프로브는 구별 걸립니까 1 , ... , N 에서 ' 1 , ... , ' N을 ? 글쎄, 그것들은 단일 요소 ( i 번째 요소) 에서만 다르므로 일정한 식별 확률을 달성하기 위해서는 Ω ( n ) 프로브가 필요합니다. 이제 n ≈ 1 / √a1,…,ana′1,…,a′niΩ(n) ; 우리는Ω(1/ √n≈1/2ϵ−−√프로브가 필요합니다.Ω(1/ϵ√)
상한
쿼리를 사용하여 두 경우를 구별 할 수 있다고 생각 합니다. 이것이 최적인지 모르겠습니다.O(lg(n/ϵ)[lgn+1/ϵ2])
방법은 다음과 같습니다. 범위 를 다음과 같이 분할 해 봅시다 :[0,1]
[0,1]=[0,0.25ϵ/n]∪(0.25ϵ/n,0.5ϵ/n]∪(0.5ϵ/n,ϵ/n]∪(ϵ/n,2ϵ/n]∪(2ϵ/n,4ϵ/n]∪⋯∪(…,1].
각 이렇게하면, 파티션입니다 내가 값이 위의 범위를 정확히 하나에 해당해야합니다. 우리는 분할 할 수 있습니다 나는 그들이에 다양 한에 따라 값을. 각 내가 값이 범위를 정확히 하나에 해당하고, 특정 범위에 속하는 사람은 모든 정렬 된 순서로 연속적으로 나타납니다. 따라서, 임의의 주어진 범위 [ ℓ , U ] , 우리는 인덱스를 찾을 수 I , J 되도록 I , ... , J ∈ [ ℓ , U ]aiaiai[ℓ,u]i,jai,…,aj∈[ℓ,u]이진 검색을 사용합니다. 이를 위해서는 이진 검색 이 필요합니다 . 우리가 그렇게했다고 가정합니다.O(lg(n/ϵ))
이제 각 범위의 값 합계를 추정합니다. 첫 번째 범위는 다른 모든 범위와 별도로 처리됩니다.
첫 번째 범위 경우 해당 범위의 값 합계를 0 과 m × 0.25 ϵ / n 사이의 범위로 묶을 수 있습니다 . 여기서 m 은 해당 범위에 속하는 값의 수입니다. 이후 m ≤ N , 바인딩이 절대 오차는 기껏 것이다 0.25 ε .[0,0.25ϵ/n)0m×0.25ϵ/nmm≤n0.25ϵ
서로 다른 범위에 대해 O ( 1 / δ 2 ) 임의 프로브를 사용하여 해당 범위의 값 합계를 상대 오차 내에 바인딩 할 수 있습니다 . 여기서 핵심은 해당 범위의 모든 값이 알려진 하한을 가지며 최대 2 배 의 하한입니다. δ = 0.25 ϵ을 선택합니다 .δO(1/δ2)2×δ=0.25ϵ
모든 추정치의 합계하지만 첫 번째 범위의 오류는 대부분의에있을 것입니다 . 제 범위의 추정 오차는 최대가 될 것이다 0.25 ε . 따라서, 이러한 모든 추정치의 합계 총 에러가있을 것이다 ≤ 0.5 ε 개의 구별하기에 충분하고, 하나 의 총 대 1 - ε .0.25ϵ0.25ϵ≤0.5ϵ11−ϵ