📘
Grokking-Algorithms book
PostgreSQL
  • Content
  • Introduction to Algorithms
    • Introduction
    • Binary Search
    • Big O notation
    • Recap
  • Selection sort
    • How memory works
    • Arrays and linked lists
    • Selection sort
    • Recap
  • Recursion
    • Recursion
    • Base case and recursive case
    • The stack
    • Recap
  • Quicksort
    • Divide & conquer
    • Quicksort
    • Big O notation revisited
    • Recap
  • Hash tables
    • Hash functions
    • Use cases
    • Collisions
    • Performance
    • Recap
  • Breadth-first search
    • Introduction to graph
    • What is a graph
    • Breadth-first search
    • Implementing the graph
    • Implementing the algorithm
    • Recap
  • Dijkstra's algorithm
    • Working with Dijkstra's algorithm
    • Terminology
    • Trading for a piano
    • Negative-weight edges
    • Implementation
    • Recap
  • Greedy Algorithms
    • The classroom scheduling problem
    • The knapsack problem
    • The set-covering problem
    • NP-complete problems
    • Traveling salesperson, step by step
    • Recap
  • Dynamic programming
    • The knapsack problem
    • Knapsack problem FAQ
    • Longest common substring
    • Recap
  • K-nearest neighbors
    • Classifying oranges vs. grapefruit
    • Building a recommendations system
    • Introduction to machine learning
    • Recap
  • Where to go next
    • Trees
    • Inverted indexes
    • The Fourier transform
    • Parallel algorithms
    • MapReduce
    • Bloom filters and HyperLogLog
    • The SHA algorithms
    • Locality-sensitive hashing
    • Diffie-Hellman key exchange
    • Linear programming
    • Epilogue
  • Answers to exercises
    • Chapter 1
    • Chapter 2
    • Chapter 3
    • Chapter 4
    • Chapter 5
    • Chapter 6
    • Chapter 7
    • Chapter 8
    • Chapter 9
    • Chapter 10
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Where to go next

Locality-sensitive hashing

PreviousThe SHA algorithmsNextDiffie-Hellman key exchange

Last updated 1 year ago

Was this helpful?

SHA yana bir muhim xususiyatga ega: u mahalliylikni sezmaydi. Aytaylik, sizda satr bor va siz u uchun xeshni yaratasiz.

Agar siz satrning faqat bitta belgisini o'zgartirsangiz va xeshni qayta yaratsangiz, u butunlay boshqacha!

Bu yaxshi, chunki tajovuzkor parolni buzishga yaqinligini bilish uchun xeshlarni solishtira olmaydi.

Ba'zan siz buning aksini xohlaysiz: siz mahalliylikka sezgir xesh funktsiyasini xohlaysiz. Bu erda Simhash keladi. Agar siz satrga ozgina o'zgartirish kiritsangiz, Simhash biroz farq qiladigan xeshni hosil qiladi. Bu sizga xeshlarni solishtirish va ikkita satr qanchalik o'xshashligini ko'rish imkonini beradi, bu juda foydali!

  • Google Internetni skanerlashda dublikatlarni aniqlash uchun Simhash-dan foydalanadi.

  • O'qituvchi Simhash yordamida talaba internetdan inshoni ko'chiryaptimi yoki yo'qligini bilishi mumkin. Diffie-Hellman kalit almashinuvi

  • Scribd foydalanuvchilarga hujjatlar yoki kitoblarni boshqalar bilan baham ko'rish uchun yuklash imkonini beradi. Lekin Scribd foydalanuvchilarning mualliflik huquqi bilan himoyalangan kontentni yuklashini xohlamaydi! Sayt Simhash yordamida yuklash Garri Potter kitobiga oÊ»xshashligini tekshirishi va agar shunday boÊ»lsa, uni avtomatik ravishda rad etishi mumkin.

Simhash shunga o'xshash narsalarni tekshirmoqchi bo'lganingizda foydalidir.

image
image