ืืื ืืืจ!
ะ
ืืืืง ืื ืฉื ืืืืืจ, ื ืกืชืื ืืงืจืื ืขื ืืืฉื ืืืจืช ืืืฉืชืืฉืช ืืืชืืืืช ืกืฃ.
ืงืฆืช ืงืจืืคืืืืจืคืื
ืขื ืื ืช ืืืืื ืืืฆื ืขืืืืืช ืืชืืืืช ืกืฃ, ืขืืืื ืืืืื ืืขื ืงืจืืคืืืืจืคืื ืืกืืกืืช. ื ืฉืชืืฉ ืืฉื ื ืืืฉืืื: ืกืงืืจืื, ืื ืคืฉืื ืืกืคืจืื, ืืืชื ื ืกืื ืืืืชืืืช ืงืื ืืช (x, y) ืื ืงืืืืช ืขื ืืขืงืืื ืืืืืคืืืช, ืืืชื ื ืกืื ืืืืชืืืช ืืืืืืช.
ืืื ืืืืื ืืช ืืืกืืืืช ืฉื ืืชืืืืช ืกืฃ, ืืื ื ืฆืจืื ืืืืื ืืืฆื ืขืงืืืืช ืืืืคืืืืช ืคืืขืืืช, ืืืื ืืื ืืืจืื ืืกืืกืืื:
-
ื ืืชื ืืืืกืืฃ ืืืืืคืื ื ืงืืืืช ืขื ืขืงืืื ืืืืคืืืช ืืกืงืืจ (ื ืกืื ืืช ืืืคื ืืกืงืืจ ืืชืืจ xG, ืืืจืืช ืืกืืืื Gx ืืฉืืฉ ืื ืืขืชืื ืงืจืืืืช ืืกืคืจืืช). ืืชืืฆืื ืฉื ืืืืืจ ืืืคื ืืกืงืืจ ืืื ื ืงืืื ืขื ืขืงืืื ืืืืคืืืช.
-
ืืืืข ืจืง ืืช ืื ืงืืื G ืืืืืฆืจ ืฉืื ืขื ืกืงืืืจ xG ืื ื ืืชื ืืืฉื x.
ื ืฉืชืืฉ ืื ืืืืฉื ืคืืืื ืื p (x) ััะตะฟะตะฝะธ k-1. ืืคืจื, ื ืฉืชืืฉ ืืชืืื ื ืืืื ืฉื ืคืืืื ืืืื: ืื ืื ืื ื ืืืืขืื ืืช ืืขืจื p (x) ืืื k ืืืจ x (ืืืื ืื ื ืืืืข ื ืืกืฃ ืขื p (x)), ื ืืื ืืืฉื p (x) ืขืืืจ ืื ืืื ืืืจ x.
ืื ืืขื ืืื ืขืืืจ ืื ืคืืืื ืื p (x) ืื ืงืืื ืืืฉืื ืขื ืืขืงืืื Gืืืขืช ืืช ืืืฉืืขืืช p(x)G ืืื k ืืฉืืขืืืืช ืฉืื ืืช x, ืื ืื ื ืืืืืื ืื ืืืฉื p(x)G ืืื x.
ืื ืืกืคืืง ืืืืข ืืื ืืืคืืจ ืืคืจืืื ืฉื ืืื ืืชืืืืช ืกืฃ ืขืืืืืช ืืืืฆื ืืืฉืชืืฉ ืืื ืืื ืืืฆืืจ ืืกืคืจืื ืืงืจืืืื.
ืืืืื ืืกืคืจืื ืืงืจืืืื ืขื ืืชืืืืช ืกืฃ
ืืื ื ืืื ืืช ืื n ืืืฉืชืชืคืื ืจืืฆืื ืืืฆืืจ ืืกืคืจ ืืงืจืื, ืืื ืื ื ืจืืฆืื ืฉืื ืืื ืืฉืชืชืฃ k ืืื ืืกืคืืง ืืื ืืื ืืืฆืืจ ืืกืคืจ, ืืื ืื ืืชืืงืคืื ืืฉืืืืื k-1 ืื ืคืืืช ืืฉืชืชืคืื ืื ืืืื ืืืืืช ืื ืืืฉืคืืข ืขื ืืืกืคืจ ืฉื ืืฆืจ.
ื ื ืื ืฉืืฉ ืคืืืื ืื ืืื p (x) ััะตะฟะตะฝะธ k-1 ืื ืฉืืืฉืชืชืฃ ืืจืืฉืื ืืืืข p (1), ืืฉื ื ืืืืข p(2), ืืืืื (n-ื ืืืืข P n)). ืื ื ืื ืื ืืืื ืืืช ืขืืืจ ืืืื ื ืงืืื ืืืืขื ืืจืืฉ G ืืืื ืืืืขืื p(x)G ืืื ืืขืจืืื x. ืื ืื ื ื ืชืงืฉืจ ืคืื) "ืจืืื ืคืจืื" iืืืฉืชืชืฃ ื' (ืื ืจืง iืืืฉืชืชืคืช ื' ืืืืจื ืืืชื), ื ืึฒืึดืืจ "ืืจืืื ืฆืืืืจื" iืืฉืชืชืคืช -ื (ืื ืื ืืืฉืชืชืคืื ืืืืจืื ืืืชื). ืืืืืจ, ืืืข ืึฒืึดืืจ ืื ืืกืคืืง ืืื ืืฉืืืจ ืคืื).
ืืฆืืจืช ืคืืืื ืื ืืื ืื ืฉืจืง i-ืืืฉืชืชืฃ ืืจืืฉืื ืืืฃ ืืื ืืืจ ืื ืืืืจ ืืช ืืืจืืื ืืคืจืื ืฉืื - ืื ืืืืง ืืืืจืื ืืืืขื ืืื ืืืืชืจ ืืคืจืืืืงืื, ืื ื ืชื ืืืชื ืืืืฉื. ืืขืช ืขืชื, ื ื ืื ืฉืืฉ ืื ื ืคืืืื ืื ืืื ืืื ืืืฉืชืชืคืื ืืืืจืื ืืช ืืืจืืืืื ืืคืจืืืื ืฉืืื.
ืืืฆื ื ืืื ืืืฉืชืืฉ ืืคืืืื ืื ืืื ืืื ืืืฆืืจ ืืกืคืจ ืืงืจืื? ืืืืชืืืื, ืื ื ืืงืืงืื ืืืืื ืืืจืืืช ืฉืื ืฉืืืฉื ืืขืืจ ืืงืื ืืืืืื. ืืืงืจื ืฉื ืืืืงืฆ'ืืื, ื-hash ืฉื ืืืืืง ืืืืจืื h ืืื ืืืขืื ืืื ืืงื ืืื. ืชื ืืืฉืชืชืคืื ืืจืฆืืช ืืืฆืืจ ืืกืคืจ ืืงืจืื ืืืืฆืขืืช h ืืื ืืจืข. ืืืฉืชืชืคืื ืืชืืืืจืื ืชืืืื h ืื ืงืืื ืขื ืืขืงืืื ืืืืฆืขืืช ืื ืคืื ืงืฆืื ืืืืืจืช ืืจืืฉ:
H = scalarToPoint(h)
ืืืจ ืื ืื ืืฉืชืชืฃ i ืืืฉื ืืืคืจืกื ืืื = p(i)H, ืื ืื ืืืืืื ืืขืฉืืช ืื ืื ืืืืขืื p(i) ื-H. ืืืืื ื ืืืช Hืื ื ืื ืืืคืฉืจ ืืืฉืชืชืคืื ืืืจืื ืืฉืืืจ ืืช ืืจืืื ืืคืจืื iืืืฉืชืชืฃ, ืืืื ื ืืชื ืืืฉืชืืฉ ืืกื ืืื ืฉื ืจืืืืื ืคืจืืืื ืืืืืง ืืืืืง. ืืคืืื, ืืืืืจืืชื ืืฆืืจืช ืืคืืืื ืื ืืืงืจ ืืืชืืืจ ืืืื ืฆืจืื ืืืชืืฆืข ืจืง ืคืขื ืืืช.
ืืืฉืจ k ืืืฉืชืชืคืื ื ืืชืื ืืื = p(i)H, ืื ืืื ืืืื ืืืฉื Hx = p(x)H ืขืืืจ ืื x ืืืืืช ืืชืืื ื ืฉื ืคืืืื ืืืื ืฉืขืืื ืื ื ืืกืขืืฃ ืืืืจืื. ืืจืืข ืื, ืื ืืืฉืชืชืคืื ืืืฉืืื H0 = p(0)H, ืืื ืืืกืคืจ ืืืงืจืื ืืืชืงืื. ืฉืืื ืื ืฉืืฃ ืืื ืื ืืืืข p(0), ืืืื ืืืจื ืืืืืื ืืืืฉืื p(0)H โ ืื ืืื ืืจืคืืืฆืื p(x)H, ืื ืฉืืคืฉืจ ืจืง ืืืฉืจ k ืขืจืืื p(i)H ืืืืข. ืคืชืืื ืืื ืืืืช ืงืื ื ืืืชืจ p(i)H ืืื ื ืืกืคืง ืืืืข ืขื p(0)H.
ืืืืืื ืืืขืื ืืฉ ืืช ืื ืืืืคืืื ืื ืฉืื ืื ื ืจืืฆืื: ืชืืงืคืื ืฉืืืืื ืืืื k-ืืืฉืชืชืคืื ืืื ืื ืคืืืช ืืื ืืืืข ืื ืืฉืคืขื ืขื ืืืกืงื ื, ืืขืื ืฉืืื ืืื ืืื k ืืืฉืชืชืคืื ืืืืืื ืืืฉื ืืช ืืืกืคืจ ืืืชืงืื, ืืื ืชืช-ืงืืืฆื ืฉื k ืืืฉืชืชืคืื ืชืืื ืืืืขื ืืืืชื ืชืืฆืื ืขืืืจ ืืืชื ืืจืข.
ืืฉ ืืขืื ืืืช ืฉื ืื ืขื ื ืืื ื ืืงืคืืื ืืืขืื. ืืื ืฉืืืื ืืจืคืืืฆืื ืชืขืืื, ืืฉืื ืฉืืขืจื Hi ืืฉืจ ืคืืจืกื ืขื ืืื ืื ืืฉืชืชืฃ i ืื ืืืืช ืืื ืืืชื ืืืจ p(i)H. ืืืืจ ืฉืืฃ ืืื ืืืฅ iืืืฉืชืชืฃ ืื ืืืืข ืคืื), ืืฃ ืืื ืืืื i-ืืืฉืชืชืฃ ืื ืืืื ืืืืช ืืืช Hi ืืืขืฉื ืืืืฉื ื ืืื, ืืืื ืื ืืืืื ืงืจืืคืืืืจืคืืช ืื ืืื ืืช Hืื ื ืชืืงืฃ ืืืื ืืคืจืกื ืื ืขืจื ืืื ืืื, ืืืืฉืคืืข ืืืืคื ืฉืจืืจืืชื ืขื ืืคืื ืฉื ืืืืื ืืืกืคืจืื ืืืงืจืืืื:
ืขืจืืื ืฉืื ืื ืฉื H_1 ืฉื ืฉืืื ืขื ืืื ืืืฉืชืชืฃ ืืจืืฉืื ืืืืืืื ืืชืืฆืื ืฉืื ื ืฉื H_0
ืืฉ ืืคืืืช ืฉืชื ืืจืืื ืืืืืื ื ืืื ืืช Hืื ื, ื ืฉืงืื ืืืชื ืืืืจ ืฉื ื ืชื ืืช ืืฆืืจืช ืืคืืืื ืื.
ืืฆืืจืช ืคืืืื ืื
ืืกืขืืฃ ืืืืจืื ืื ืื ื ืฉืืฉ ืื ื ืคืืืื ืื ืืื p (x) ััะตะฟะตะฝะธ k-1 ืฉืืืฉืชืชืฃ i ืืืืข ืคืื), ืืืืฃ ืืื ืืืจ ืืื ืืืืข ืขื ืืขืจื ืืื. ืืกืขืืฃ ืืื ื ืืืงืง ืืื ืื ืืืืื ื ืงืืื ืืืืขื ืืจืืฉ G ืืืื ืืืขื p(x)G ืขืืืจ ืื x.
ืืกืขืืฃ ืื ื ื ืื ืฉืืื ืืฉืชืชืฃ ืืงืืืืช ืืฉ ืืคืชื ืคืจืื ืืืฉืื xi, ืื ืฉืืืื ืืืืจืื ืืช ืืืคืชื ืืฆืืืืจื ืืืชืืื Xi.
ืคืจืืืืงืื ืืฆืืจืช ืคืืืื ืื ืืคืฉืจื ืืื ืืื ืืืืงืื:
-
ืื ืืฉืชืชืฃ i ืืืฆืจ ืืืืคื ืืงืืื ืคืืืื ืื ืฉืจืืจืืชื pi(x) ืชืืืจ k-1. ืืืืจ ืืื ืื ืฉืืืืื ืื ืืฉืชืชืฃ j ะทะฝะฐัะตะฝะธะต pi(j), ืืืฆืคื ืขื ืืคืชื ืฆืืืืจื Xj. ืื ืืืื i-ื ะธ j-ื ืืืฉืชืชืฃ ืืืืข pi(j). ืึดืฉืืชึทืชึตืฃ i ืื ืืืจืื ืืคืืืื pi(j)G ืขืืืจ ืื j ื 1 ะดะพ k ืืืื.
-
ืื ืืืฉืชืชืคืื ืืฉืชืืฉืื ืืงืื ืฆื ืืืก ืืืฉืื ืืื ืืืืืจ k ืืฉืชืชืคืื ืฉืืคืืืื ืืืื ืฉืืื ืืฉืืฉื. ืืืืืื ืฉืืืง ืืืืฉืชืชืคืื ืขืฉืืืื ืืืืืช ืืืฆื ืื ืืงืืื, ืืื ื ื ืืืืืื ืืืืืช ืขื ืฉืืืื n ืืืฉืชืชืคืื ืืคืจืกืื ืคืืืื ืืืื. ืืชืืฆืื ืฉื ืฉืื ืื ืืื ืกื Z ืืืจืื ืืคืืืช k ืคืืืื ืืืื ืฉื ืืฆืจื ืืฉืื (1).
-
ืืืฉืชืชืคืื ืืืืืืื ืืช ืืขืจืืื ืฉืื ืืืืจืื pi(j) ืชืืื ืืืืจื ืืคืืืื pi(j)G. ืืืืจ ืืฆืขื ืืื ืคื ืืื Z ืจืง ืคืืืื ืืืื ืฉืขืืืจื ืืฉืืืจืื ืืืืคื ืคืจืื pi(j) ืชืืื ืืืืจื ืืคืืืื pi(j)G.
-
ืื ืืฉืชืชืฃ j ืืืฉื ืืช ืืจืืื ืืคืจืื ืฉืื p(j) ืืกืืื pi(j) ืขืืืจ ืืืื i ะฒ Z. ืื ืืฉืชืชืฃ ืื ืืืฉื ืืช ืื ืืขืจืืื p(x)G ืืกืืื pi(x)G ืขืืืจ ืื i ะฒ Z.
ืฉืื ืื ืฉ p(x) - ืื ืืืืช ืคืืืื ืื k-1, ืื ืื ืกืืื ืืคืจื pi(x), ืฉืื ืืื ืืื ืืื ืคืืืื ืื ืฉื ืชืืืจ k-1. ืืืืจ ืืื, ืฉืื ืื ืฉืืืื ืฉืื ืืฉืชืชืฃ j ืืืืข p(j), ืืื ืืื ืืืืข ืขื p (x) ืขืืืจ x โ j. ืืืื, ืืื ืืืฉื ืืช ืืขืจื ืืื, ืื ืฆืจืืืื ืืืขืช ืืื pi(x), ืืื ืขืื ืืืฉืชืชืฃ j ืืื ื ืืืืจ ืืคืืืช ืืื ืืืคืืืื ืืืื ืฉื ืืืจื, ืืื ืืื ืืกืคืืง ืืืืข ืืืื p(x).
ืืื ืื ืชืืืื ืืฆืืจืช ืืคืืืื ืื ืฉืืื ื ืืืฅ ืืกืขืืฃ ืืืืจืื. ืืฉืืืื 1, 2 ื-4 ืืขืื ืืฉ ืืืฉืื ืื ืืจืืจ. ืืื ืฉืื 3 ืืื ืื ืื ืื ืืจืืืืืืื.
ืืืืคื ืกืคืฆืืคื, ืื ืื ื ืฆืจืืืื ืืืืืช ืืกืืืืื ืืืืืื ืืช ืื ืืืฆืคื pi(j) ืืืืช ืชืืืืื ืืืื ืฉืคืืจืกืื pi(j)G. ืื ืื ื ืืื ืืืืืื ืืืช, ืืชืืงืฃ i ืืืื ืืฉืืื ืืื ืืืงืื pi(j) ืืืฉืชืชืฃ j, ืืืฉืชืชืฃ j ืื ืืืื ืืงืื ืืช ืืขืจื ืืืืืชื pi(j), ืืื ืืืื ืืืฉื ืืช ืืืจืืื ืืคืจืื ืฉืื.
ืงืืื ืคืจืืืืงืื ืงืจืืคืืืืจืคื ืืืืคืฉืจ ืืืฆืืจ ืืืืขื ื ืืกืคืช ืืืืืi(j), ืื ืฉืืื ืืฉืชืชืฃ, ืืฉ ืขืจื ืืืฉืื e, ืืื ืื proofi(j) ะธ pi(j)G, ืืืื ืืืืช ืืืช ืืืืคื ืืงืืื e - ืื ืืืืช pi(j), ืืืฆืคื ืขื ืืืคืชื ืฉื ืืืฉืชืชืฃ j. ืืืจืื ืืฆืขืจ, ืืืืื ืฉื ืจืืืืช ืืืื ืืื ืืืื ืืืคืืื, ืืืืชืืฉื ืืื ืฉืืฉ ืฆืืจื ืืคืจืกื O (nk) ืื ื ืืชื ืืืฉืชืืฉ ืืจืืืืช ืืืื ืืืืจื ืื.
ืืืงืื ืืืืืื ืืช ืื pi(j) ืืชืืื pi(j)G ืื ื ืืืืืื ืืืงืฆืืช ืคืจืง ืืื ืืจืื ืืืื ืืคืจืืืืงืื ืืฆืืจืช ืคืืืื ืื, ืฉืืืืืื ืื ืืืฉืชืชืคืื ืืืืงืื ืืช ืืืืฆืคื ืฉืืชืงืื pi(j), ืืื ืืืืืขื ืืืคืืขื ืืช ืืื ื ืชืืืืช ืืช ืืฆืืืืจ pi(j)G, ืื ืืคืจืกืืื ืืืืื ืงืจืืคืืืืจืคืืช ืืื ืฉืืืืืขื ืืืืฆืคื ืช ืฉืงืืืื ืืื ื ื ืืื ื. ืชืืืื ืฉืืืกืจ ืื ืืชืืื ืึฒืึดืืจ) ืืจืื ืืืชืจ ืงื ืืืฉืจ ืืืืืื ืฉืื ืชืืื. ืืฆืืื ืื ืืืืจ ืืืืื ืื ืืฉืชืชืฃ ืืืืคืืข ืืืื ืืจื ื ืืคืืืช ืคืขื ืืืช ืืืืื ืืืื ืืืืงืฆื ืืืฆืืจืช ืจืืืืช ืืืืืจ, ืืืกืชืื ืขื ืืื ืื ืฉืื ืืคืจืกืื ืืืืื ืืื, ืืื ืชืืืข ืืื ืฉืืจ ืืืฉืชืชืคืื ืืืืชื ืืื ืืืงืฆื.
ืื ืืฉืชืชืฃ ืื ืืืคืืข ืืืื ืืจื ื ืืืืื ืคืจืง ืืื ืื, ืืืื ืืื ืื ืืคืืืช ืจืืื ืืื ืฉืืื, ืืื ืืืชื ืืฉืชืชืฃ ืืกืืื ืื ืืืื ืืืฉืชืชืฃ ืืืฆืืจืช ืืกืคืจืื ื ืืกืคืช. ืขื ืืืช, ืืคืจืืืืงืื ืขืืืื ืืคืขื ืื ืืฉ ืืคืืืช k ืืฉืชืชืคืื ืฉืื ืขืชื ืงืืืื ืืช ืืจืืืืื ืื ืืื ืื ืื ืฉืืฆืืืื ืืืฉืืืจ ืืืืื ืืื ื ืืื ืืช ืืชืื ืืืื ืืืืงืฆื.
ืืืืืืช ื ืืื ืืช ืฉื H_i
ืืืืง ืืืืจืื ืฉื ืืชืจ ืืืื ืื ืืื ืืืฆื ืืืืืื ืืช ื ืืื ืืช ืืคืจืกืื Hืื ื, ืืืืืจ ืื ืืื = p(i)H, ืืื ืืคืชืื ืคืื).
ืืืื ื ืืืืจ ืื ืืขืจืืื H, G, p(i)G ืฆืืืืจื ืืืืืข ืืืืื. ืงืืื ืคืขืืื ืคืื) ืืืืขื ืึฒืึดืืจ ะธ G ื ืงืจื ืืืืจืืชื ืืืื, ืื ืืืื, ืืื ืื ื ืจืืฆืื ืืืืืื ืฉ:
dlog(p(i)G, G) = dlog(Hi, H)
ืืื ืืฉืืคื ืคืื). ืืื ืื ืืืืืืืช ืืืื ืงืืืืืช, ืืืฉื
ืขื ืขืืฆืื ืื, ืื ืืฉืชืชืฃ, ืืื ืขื Hi ืฉืืื ืืืืืช ื ืืื ืืช ืืคื ืืขืืฆืื.
ืืจืืข ืฉืืกืคืจ ืืงืจืื ื ืืฆืจ, ืืขืชืื ืงืจืืืืช ืืฉ ืืืฉืชืืฉ ืื ืขื ืืื ืืฉืชืชืคืื ืฉืืื ื ืืื ืฉืืฆืจื ืืืชื. ืืฉืชืชืคืื ืืืื, ืืื ืขื ืืืกืคืจ, ืืืืืื ืืฉืืื ืืช ืืืื Hi ืืขืืืืืช ื ืืืืช.
ืงืืจื ืกืงืจื ืขืฉืื ืืฉืืื: ืฉืื ืืืกืคืจ ืืืงืจืื ืืกืืคื ืืื H0, ื p(0)G โ ืื ืืืืข ืฆืืืืจื, ืืื ืื ืื ื ืฆืจืืืื ืืืืื ืืื ืืื Hืื ื, ืืื ืื ืืฉืืื ืืืืื ืืื ืืืงืื ืืืช
ืืืื(p(0)G, G) = dlog(H0, H)
ืืืขืื ืืื ืฉืื ื ืืชื ืืืฆืืจ ืืืืื ืืื ืืืืฆืขืืช ืคืจืืืืงืื ืฉื ืืจ ืื ืืฃ ืืื ืื ืืืืข ืืช ืืขืจื p (0), ืืืจืื ืืืฆืืจืช ืืืืืื, ืืืืชืจ ืืื, ืื ืืืืื ืืืกืคืจืื ืืืงืจืืืื ืืืืกืก ืขื ืืขืืืื ืฉืืฃ ืืื ืื ืืืืข ืืช ืืขืจื ืืื. ืืื ืืฉ ืฆืืจื ืืื ืืขืจืืื Hi ืืืจืืืืช ืืืืฉืืืช ืฉืืื ืืืืืืช ื ืืื ืืช H0.
ืขื ืืืช, ืื ืืืืชื ืคืขืืื ืืืฉืื ืื ืงืืืืช ืขื ืขืงืืืืช ืืืืคืืืืช ืฉืืืื ืืืืื ื ืกืื ืืืช ืืืคื, ืืืืืื ืื ืืื ืืช H0 ืืืื ืืจืืืืืืื, ืคืฉืื ื ืืืื ืืช ืื
H0 ร G = p(0)G ร H
ืื ืืขืงืืื ืฉื ืืืจื ืชืืืืช
ืืกืืืื
ืืืืจ ืื ืืื ืืืง ืืกืืจืช ืืืืืื ืืื ืืื
ืงืื ืืคืจืืืืงืื ืคืชืื, ืืืืฉืื ืฉืื ื ืืชืื ื-Rust, ื ืืชื ืืืฆืื ืืืชื
ืืชื ืืืื ืืจืืืช ืืื ื ืจืื ืคืืชืื ืขืืืจ NEAR ืืืืชื ืกืืช ื-IDE ืืืงืืื
ืืชื ืืืื ืืขืงืื ืืืจ ืื ืืืืฉืืช ืืจืืกืืช ืืืชืืืช
ื ืชืจืื ืืงืจืื!
ืืงืืจ: www.habr.com