Tamamen işlevsel bir ortamda, tek başına bağlı olmayan listeyi düşünün. Övgüler dağ tepelerinden söylenmiştir ve söylenmeye devam edecektir. Burada birçok güçlü yönünden birini ve bunun ağaçlara dayanan daha geniş bir tamamen işlevsel sekans sınıfına nasıl genişletilebileceği sorusunu ele alacağım.
Sorun şudur: O (1) zamanında neredeyse kesin yapısal eşitliği güçlü bir karma ile test etmek istersiniz. Karma işlevi yapısal olarak özyinelemeli, yani karma (x: xs) = mix x (karma xs) ise, listelerde karma değerlerini önbelleğe alabilir ve bir öğe varolan bir listeye eklendiğinde bunları O (1) zamanında güncelleyebilirsiniz . Hash listelerinin çoğu algoritması yapısal olarak özyinelemelidir, bu nedenle bu yaklaşım pratikte oldukça kullanılabilir.
Ancak tek tek bağlantılı listeler yerine O (log n) zamanında iki uzunluk O (n) dizisini birleştirmeyi destekleyen ağaç tabanlı dizilere sahip olduğunuzu varsayalım. Karma önbelleğin burada çalışması için, bir ağacın aynı doğrusal diziyi temsil etme özgürlüğüne saygı göstermek için karma karıştırma fonksiyonunun birleştirici olması gerekir. Karıştırıcı alt ağaçların hash değerlerini almalı ve tüm ağacın hash değerini hesaplamalıdır.
Altı ay önce, bu sorunu araştırmak ve araştırmak için bir gün geçirdim. Veri yapıları ile ilgili literatürde dikkat çekmemiş gibi görünmektedir. Kriptografiden Tillich-Zemor karma algoritmasına rastladım. 0 ve 1 bitlerinin, bir Galois alanındaki girişleri olan bir alt cebrenin iki jeneratörüne karşılık geldiği 2x2 matris çarpımına (ilişkilendirilebilir) dayanır.
Sorum şu: Neyi kaçırdım? Hem kriptografi literatüründe hem de araştırmamda bulamadığım veri yapılarıyla ilgili makaleler bulunmalıdır. Bu sorun ve keşfedilecek olası mekanlarla ilgili herhangi bir yorum çok takdir edilecektir.
Düzenleme: Ben spektrumun hem yumuşak hem de kriptografik olarak güçlü uçlarında bu soru ile ilgileniyorum. Daha yumuşak tarafta, çarpışmalardan kaçınılması gereken ancak felaket olmayan karma tablolar için kullanılabilir. Daha güçlü tarafta, eşitlik testi için kullanılabilir.