2012-09-07 11 views

cevap

6

Artan sağlama fonksiyonları, M *, o zaman , güncellenmiş mesajın hash değerini hesaplamak için oldukça hızlı olmalıdır M *. Bu, no'lu yeni hash, m * 'yi sıfırdan daha uzun bir zaman alan yeni hash fonksiyonlarına karşılık, eski karma değerinden m, yeni hash, m *' nin hesaplanmasıyla yapılır.

http://www.cs.berkeley.edu/~daw/papers/inchash-cs06.pdf

Onlar yüzünden onlar güç ve zaman hesaplama açısından hesaplamak için daha kolay ve bu nedenle daha az pahalılar gerçeğine faydalısın

. Bununla birlikte, her durum için uygun değildirler. Berkeley'deki bu makalenin Giriş bölümünde faydalı olabilecekleri güzel örneklere sahip.

+0

Teşekkürler! Virüs örneği harika (kağıttan). –

+1

Bu cevap ile kafam karıştı. Soru, özellikle MurmurHash3'ün hangi anlamda arttığını sorar, fakat cevabın tarif ettiği anlamda artımlı olduğunu düşünmüyorum. Belki de sadece nasıl olduğunu görmüyorum. – Rotsor

3

Bu konuda uzman değilim, ama MurmurHash3'ün tommarshall'in tarif ettiği anlamda artımlı olmadığını düşünüyorum.

insanlar, muhtemelen O bir dere (1) bellek bir karmaşa hesaplar anlamına artırımlı olarak tarif size (pseudocode) Aşağıdaki yapalım bir API olabilir yani zaman:

x = Hasher() 
x.add("hello ") 
x.add("world!") 
x.get_hash() 

ve bu, tüm dizeyi zamanın herhangi bir noktasında bellekte tutmadan, "merhaba dünya" dizesini yaratacaktır. Özellikle, imurmurhash-js javascript paketi, bu anlamda 'incremental' sözcüğünü kullanır gibi görünüyor.

Aynı anlama, MetroHash belgelerinde kullanıldığı görülmektedir.

+1

Belki de "stream hashing" olarak adlandırılmalıdır. – CMCDragonkai