التجزئة الشاملة
في الرياضيات والحوسبة ، يشير التجزئة الشاملة (في خوارزمية أو بنية بيانات عشوائية ) إلى اختيار دالة تجزئة عشوائيًا من مجموعة دوال تجزئة ذات خاصية رياضية معينة (انظر التعريف أدناه). يضمن هذا عددًا منخفضًا من التصادمات في المتوسط ، حتى لو اختار البيانات مهاجم. تُعرف العديد من مجموعات دوال التجزئة الشاملة (لتجزئة الأعداد الصحيحة، والمتجهات، والسلاسل النصية)، وغالبًا ما يكون تقييمها فعالًا للغاية. للتجزئة الشاملة استخدامات عديدة في علوم الحاسوب، على سبيل المثال في تطبيقات جداول التجزئة ، والخوارزميات العشوائية ، والتشفير .
مقدمة
لنفترض أننا نريد تعيين المفاتيح من عالم ماداخلصناديق (مُصنّفة)سيتعين على الخوارزمية التعامل مع مجموعة بيانات معينة.لالمفاتيح، وهو أمر غير معروف مسبقًا. عادةً، يكون الهدف من التجزئة هو الحصول على عدد قليل من التصادمات (المفاتيح منالتي تقع في نفس الحاوية). لا يمكن لدالة التجزئة الحتمية أن تقدم أي ضمان في بيئة معادية إذابما أن الخصم قد يختارأن تكون هذه القيمة هي الصورة العكسية لحاوية بيانات. هذا يعني أن جميع مفاتيح البيانات تقع في نفس الحاوية، مما يجعل التجزئة غير مجدية. علاوة على ذلك، لا تسمح دالة التجزئة الحتمية بإعادة التجزئة : ففي بعض الأحيان، تكون بيانات الإدخال غير مناسبة لدالة التجزئة (على سبيل المثال، وجود عدد كبير جدًا من التصادمات)، لذلك قد يرغب المستخدم في تغيير دالة التجزئة.
يكمن حل هذه المشاكل في اختيار دالة عشوائيًا من مجموعة من دوال التجزئة.تُسمى عائلة عالمية إذا،.
بمعنى آخر، فإن أي مفتاحين مختلفين للكون يتصادمان باحتمالية لا تتجاوزعندما تكون دالة التجزئةيتم سحبها بشكل عشوائي منتظم منهذا هو بالضبط احتمال التصادم الذي نتوقعه إذا قامت دالة التجزئة بتعيين رموز تجزئة عشوائية حقًا لكل مفتاح.
في بعض الأحيان، يتم تخفيف التعريف بمعامل ثابت، ويتطلب فقط احتمال التصادم.بدلاً من. تم تقديم هذا المفهوم بواسطة كارتر وويغمان [ 1 ] في عام 1977، وقد وجد العديد من التطبيقات في علوم الكمبيوتر (انظر، على سبيل المثال [ 2 ] ) .
إذا كان لدينا حد أعلى لـفيما يتعلق باحتمالية التصادم، نقول إن لدينا- شبه عالمية. فعلى سبيل المثال، تتمتع العائلة العالمية بـشبه عالمية.
تتمتع العديد من العائلات العالمية، ولكن ليس جميعها، بخاصية الفرق المنتظم الأقوى التالية :
- ، متىيتم اختيارها عشوائياً من العائلةالفرقموزعة بشكل منتظم في.
لاحظ أن تعريف العالمية يهتم فقط بما إذا كان، وهو ما يحسب التصادمات. خاصية الفرق المنتظم أقوى.
(وبالمثل، يمكن أن تكون العائلة الشاملة شاملة XOR إذا، القيمةموزعة بشكل منتظم فيأينهي عملية "أو الحصرية" على مستوى البتات. هذا ممكن فقط إذا(قوة العدد اثنين.)
أما الشرط الأقوى فهو الاستقلال الثنائي : لدينا هذه الخاصية عندما لدينا احتمال أنسيتم تطبيق التجزئة على أي زوج من قيم التجزئةكأنها كانت عشوائية تماماً:يُطلق على الاستقلال الثنائي أحيانًا اسم الشمولية القوية .
ومن الخصائص الأخرى التماثل. نقول إن عائلة ما متماثلة إذا كانت جميع قيم التجزئة متساوية الاحتمالية:لأي قيمة تجزئةلا تعني الشمولية بالضرورة التماثل. ومع ذلك، فإن الشمولية القوية تعني بالضرورة التماثل.
بفرض وجود عائلة ذات خاصية المسافة المنتظمة، يمكن إنتاج عائلة تجزئة مستقلة ثنائياً أو عائلة تجزئة عالمية قوية عن طريق إضافة ثابت عشوائي موزع بشكل منتظم بقيم فيإلى دوال التجزئة. (وبالمثل، إذابما أن قيمة ثابتة هي قوة للعدد اثنين، يمكننا تحقيق الاستقلال الثنائي من عائلة تجزئة XOR الشاملة عن طريق إجراء عملية XOR حصرية باستخدام ثابت عشوائي موزع توزيعًا منتظمًا. ولأن الإزاحة بمقدار ثابت قد تكون غير ذات صلة في بعض التطبيقات (مثل جداول التجزئة)، فإن التمييز الدقيق بين خاصية المسافة المنتظمة والاستقلال الثنائي لا يُجرى دائمًا. [ 3 ]
في بعض التطبيقات (مثل جداول التجزئة)، من المهم أن تكون البتات الأقل أهمية في قيم التجزئة عامة أيضًا. عندما تكون عائلة من البتات عامة بقوة، يكون هذا مضمونًا: إذاهي عائلة عالمية قوية معثم قامت الأسرة بتكوين الوظائفللجميعكما أنه عالمي بقوة لـلسوء الحظ، لا ينطبق الأمر نفسه على العائلات (العالمية) البحتة. على سبيل المثال، العائلة المكونة من دالة التطابقمن الواضح أنها عالمية، لكن العائلة صنعت الوظيفةلا يمكن اعتباره عالميًا.
تعتمد خوارزميات UMAC و Poly1305-AES والعديد من خوارزميات التحقق من صحة الرسائل الأخرى على التجزئة الشاملة. [ 4 ] [ 5 ] في مثل هذه التطبيقات، يختار البرنامج دالة تجزئة جديدة لكل رسالة، بناءً على قيمة عشوائية فريدة لتلك الرسالة.
تعتمد العديد من تطبيقات جداول التجزئة على التجزئة الشاملة. في هذه التطبيقات، يختار البرنامج عادةً دالة تجزئة جديدة فقط بعد ملاحظة وجود عدد كبير جدًا من المفاتيح المتداخلة؛ وحتى ذلك الحين، تستمر دالة التجزئة نفسها في الاستخدام بشكل متكرر. (تختار بعض مخططات حل التداخل، مثل التجزئة المثالية الديناميكية ، دالة تجزئة جديدة في كل مرة يحدث فيها تداخل. بينما تسمح مخططات أخرى، مثل تجزئة الوقواق وتجزئة الاختيار الثنائي ، بعدد من التداخلات قبل اختيار دالة تجزئة جديدة). يمكن الاطلاع على دراسة استقصائية لأسرع دوال التجزئة الشاملة والشاملة القوية المعروفة للأعداد الصحيحة والمتجهات والسلاسل النصية في المرجع [ 6 ] .
الضمانات الرياضية
لأي مجموعة ثابتةلالمفاتيح، باستخدام عائلة عالمية تضمن الخصائص التالية.
- لأي ثابتفي، العدد المتوقع للمفاتيح في الصندوقيكونعند تنفيذ جداول التجزئة عن طريق الربط ، يكون هذا الرقم متناسبًا مع وقت التشغيل المتوقع لعملية تتضمن المفتاح(على سبيل المثال، استعلام أو إدراج أو حذف).
- العدد المتوقع لأزواج المفاتيحفيمعالتي تصطدم () محصورة من الأعلى بـوهذا أمرٌ مُرتبعندما يكون عدد الصناديق،يتم اختيارها خطيًا في(أي، يتم تحديده بواسطة دالة في)، العدد المتوقع للتصادمات هوعند التجزئة إلىفي حالة الصناديق، لا توجد تصادمات على الإطلاق باحتمالية لا تقل عن النصف.
- العدد المتوقع للمفاتيح في الصناديق التي تحتوي على الأقليتم تحديد المفاتيح الموجودة فيها من الأعلى بواسطة[ 7 ] وبالتالي ، إذا تم تحديد سعة كل صندوق بثلاثة أضعاف الحجم المتوسط ()، يكون العدد الإجمالي للمفاتيح في الصناديق الممتلئة على الأكثرينطبق هذا فقط على عائلة التجزئة التي يكون احتمال تصادمها محدودًا من الأعلى بـإذا تم استخدام تعريف أضعف، يتم تحديده بواسطةلم تعد هذه النتيجة صحيحة. [ 7 ]
تنطبق الضمانات المذكورة أعلاه على أي مجموعة ثابتةتتحقق هذه الشروط إذا اختار الخصم مجموعة البيانات. مع ذلك، يجب على الخصم اتخاذ هذا الاختيار قبل (أو بشكل مستقل عن) اختيار الخوارزمية العشوائي لدالة التجزئة. إذا كان بإمكان الخصم ملاحظة الاختيار العشوائي للخوارزمية، فإن العشوائية تفقد جدواها، ويصبح الوضع مماثلاً للتجزئة الحتمية.
تُستخدم الضمانتان الثانية والثالثة عادةً بالتزامن مع إعادة التجزئة . على سبيل المثال، قد يتم إعداد خوارزمية عشوائية للتعامل مع بعضعدد التصادمات. إذا رصد عددًا كبيرًا جدًا من التصادمات، فإنه يختار تصادمًا عشوائيًا آخر.من العائلة والتكرارات. تضمن خاصية الشمولية أن يكون عدد التكرارات متغيرًا عشوائيًا هندسيًا .
الإنشاءات
بما أن أي بيانات حاسوبية يمكن تمثيلها بكلمة واحدة أو أكثر من كلمات الآلة، فإن المرء يحتاج عمومًا إلى دوال التجزئة لثلاثة أنواع من المجالات: كلمات الآلة ("الأعداد الصحيحة")؛ متجهات ذات طول ثابت من كلمات الآلة؛ ومتجهات ذات طول متغير ("السلاسل").
تجزئة الأعداد الصحيحة
يتناول هذا القسم حالة تجزئة الأعداد الصحيحة التي تتناسب مع عدد الكلمات في الآلة؛ وبالتالي، فإن عمليات مثل الضرب والجمع والقسمة، وما إلى ذلك، هي تعليمات رخيصة على مستوى الآلة. لنفترض أن الكون المراد تجزئته هووليكن مدى دوال التجزئة هو.
كان الاقتراح الأصلي لكارتر وويغمان [ 1 ] هو اختيار عدد أوليوحدد
أينهي أعداد صحيحة مختارة عشوائياً بترددمع(هذه دورة واحدة من مولد التوافق الخطي .)
لرؤية ذلكهي عائلة عالمية، لاحظ أنلا ينطبق إلا عندما
لبعض الأعداد الصحيحةبينو. منذ، لواختلافهمهو عدد غير صفري وله مقلوب باقي القسمةحل المعادلة لـالعائد
- .
هناكالخيارات الممكنة لـ(منذ(باستثناء) و، متفاوتةضمن النطاق المسموح به،القيم غير الصفرية المحتملة للجانب الأيمن. وبالتالي، فإن احتمال التصادم هو
- .
طريقة أخرى للنظرتُعرَّف العائلة العالمية من خلال مفهوم المسافة الإحصائية . اكتب الفرقمثل
- .
منذغير صفري وموزعة بشكل منتظم فيوبناءً على ذلكmoduloكما أنه موزع بشكل منتظم فيتوزيعوبالتالي، يكون الأمر شبه منتظم، حتى مع وجود اختلاف في احتماليةبين العينات. ونتيجة لذلك، فإن المسافة الإحصائية إلى عائلة متجانسة هي، وهو ما يصبح ضئيلاً عندما.
عائلة دوال التجزئة الأبسط
هو عالمي تقريبًا فقط:للجميع[ 1 ] علاوة على ذلك ، فإن هذا التحليل دقيق للغاية؛ فقد أظهر كارتر وويغمان [ 1 ] أنحينما.
تجنب الحساب النمطي
تُعدّ طريقة الضرب والإزاحة ، التي وصفها ديتزفيلبينجر وآخرون عام 1997، أحدث التقنيات المستخدمة في تجزئة الأعداد الصحيحة. [ 8 ] وبفضل تجنّبها للحساب النمطي ، تُصبح هذه الطريقة أسهل بكثير في التنفيذ، كما أنها أسرع بكثير في الواقع العملي (عادةً بأربعة أضعاف على الأقل [ 9 ] ). تفترض هذه الطريقة أن عدد الخانات هو قوة من قوى العدد اثنين.. يتركليكن عدد البتات في كلمة الآلة. عندئذٍ، يتم تحديد معلمات دوال التجزئة على الأعداد الصحيحة الموجبة الفردية.(التي تتناسب مع كلمة منبتات). لتقييم، اضرببواسطةmoduloثم حافظ على النظام العاليالبتات كرمز تجزئة. في الترميز الرياضي ، هذا هو
لا يحقق هذا المخطط خاصية الفرق المنتظم، وهو فقطشبه عالمي ؛ لأي،.
لفهم سلوك دالة التجزئة، لاحظ أنه إذاوإذا كانت لديهم نفس البتات من الرتبة العليا 'M'،تحتوي على إما جميعها 1 أو جميعها 0 كأعلى M بت (اعتمادًا على ما إذاأو(أكبر). افترض أن أقل بتة مهمة مضبوطة منيظهر في الموضع. منذهو عدد فردي عشوائي، والأعداد الفردية لها معكوسات في الحلقةوبناءً على ذلكسيتم توزيعها بالتساوي بينأعداد صحيحة من نوع بت مع ضبط البت الأقل أهمية في الموضعوبالتالي، فإن احتمال أن تكون هذه البتات جميعها أصفارًا أو جميعها آحادًا هو على الأكثرمن ناحية أخرى، إذاثم البتات ذات الرتبة الأعلى M من تحتوي على كل من الأصفار والآحاد، لذلك من المؤكد أنوأخيرًا، إذاثم عضل هو 1 وإذا وفقط إذا بتاتوهي أيضًا 1، وهو ما يحدث باحتمالية.
هذا التحليل دقيق، كما يتضح من المثال.وللحصول على دالة تجزئة "عالمية" حقًا، يمكن استخدام مخطط الضرب والجمع والإزاحة الذي يختار البتات ذات الرتبة الأعلى.
أينهو عدد صحيح موجب عشوائيوهو عدد صحيح عشوائي غير سالب معيتطلب هذا إجراء عمليات حسابية علىالأعداد الصحيحة غير الموقعة ذات n بت. يعود هذا الإصدار من الضرب والإزاحة إلى ديتزفيلبينجر، وقد تم تحليله لاحقًا بشكل أكثر دقة بواسطة وولفيل. [ 10 ]
متجهات التجزئة
يتناول هذا القسم تجزئة متجه ثابت الطول من كلمات الآلة. فسر المدخلات كمتجه.لكلمات الآلة (أعداد صحيحة من(بضعة أجزاء لكل منها). إذاهي عائلة شاملة ذات خاصية الفرق المنتظم، والعائلة التالية (التي يعود تاريخها إلى كارتر وويغمان [ 1 ] ) لديها أيضًا خاصية الفرق المنتظم (وبالتالي فهي شاملة):
- حيث كليتم اختيارها بشكل مستقل وعشوائي.
لوإذا كان أحد قوى العدد اثنين، فيمكن استبدال الجمع بعملية "أو الحصرية". [ 11 ]
عمليًا، إذا كانت العمليات الحسابية ذات الدقة المزدوجة متاحة، يتم استخدام عائلة دوال التجزئة ذات الإزاحة المضاعفة. [ 12 ] تهيئة دالة التجزئة بمتجهمن الأعداد الفردية العشوائية علىبتات لكل منها. ثم إذا كان عدد الخاناتل:
- .
من الممكن تقليل عدد عمليات الضرب إلى النصف، وهو ما يُترجم عمليًا إلى زيادة السرعة بمقدار الضعف تقريبًا. [ 11 ] قم بتهيئة دالة التجزئة باستخدام متجه.من الأعداد الفردية العشوائية علىكل بت. عائلة التجزئة التالية عالمية: [ 13 ]
- .
إذا لم تكن عمليات الدقة المزدوجة متاحة، فيمكن تفسير المدخلات على أنها متجه من أنصاف الكلمات (الأعداد الصحيحة ذات البتات). ثم ستستخدم الخوارزميةعمليات الضرب، حيثكان عدد أنصاف الكلمات في المتجه. وبالتالي، تعمل الخوارزمية بمعدل عملية ضرب واحدة لكل كلمة من المدخلات.
يمكن استخدام نفس الأسلوب لتجزئة الأعداد الصحيحة، وذلك بتفسير بتاتها كمتجهات من البايتات. في هذا النوع، تُعرف تقنية المتجهات بتجزئة الجدولة ، وهي تُوفر بديلاً عملياً لأساليب التجزئة الشاملة القائمة على الضرب. [ 14 ]
من الممكن أيضًا تحقيق شمولية قوية بسرعة عالية. [ 15 ] قم بتهيئة دالة التجزئة باستخدام متجه.من الأعداد الصحيحة العشوائية علىبتات. حساب
- .
والنتيجة عالمية بشكل كبيربتات. وقد وُجد تجريبياً أنه يعمل بمعدل 0.2 دورة معالجة مركزية لكل بايت على معالجات إنتل الحديثة لـ.
تجزئة السلاسل
يشير هذا إلى تجزئة متجه متغير الحجم من كلمات الآلة. إذا أمكن تحديد طول السلسلة برقم صغير، فمن الأفضل استخدام حل المتجه المذكور أعلاه (أي إضافة أصفار إلى المتجه حتى الوصول إلى الحد الأعلى). المساحة المطلوبة هي أقصى طول للسلسلة، ولكن وقت التقييم هوهو مجرد طولطالما أن الأصفار ممنوعة في السلسلة النصية، يمكن تجاهل إضافة الأصفار عند تقييم دالة التجزئة دون التأثير على شموليتها. [ 11 ] تجدر الإشارة إلى أنه إذا سُمح بالأصفار في السلسلة النصية، فقد يكون من الأفضل إضافة حرف وهمي غير صفري (مثل 1) إلى جميع السلاسل النصية قبل إضافة الأصفار: سيضمن ذلك عدم تأثر الشمولية. [ 15 ]
لنفترض الآن أننا نريد استخدام التجزئة، حيث يكون هناك حد جيد علىغير معروف مسبقًا. تعالج عائلة عالمية مقترحة في [ 12 ] السلسلةكمعاملات متعددة الحدود بتردد عدد أولي كبير. إذا، يتركليكن عددًا أوليًا، وعرّفه:
- ، أينعشوائي بشكل منتظم ويتم اختيارها عشوائياً من عائلة عالمية تمثل مجال الأعداد الصحيحة.
باستخدام خصائص الحساب النمطي، يمكن حساب ما سبق دون إنتاج أعداد كبيرة للسلاسل الكبيرة على النحو التالي: [ 16 ]
دالة التجزئة uint hash ( سلسلة نصية x ، عدد صحيح a ، عدد صحيح p ) uint h = القيمة الابتدائية (INITIAL_VALUE) for ( uint i = 0 ; i < طول x ; ++ i ) h = (( h * a ) + x [ i ]) mod p return hتعتمد دالة التجزئة المتدحرجة لرابين-كارب على مولد توافقي خطي . [ 17 ] تُعرف الخوارزمية المذكورة أعلاه أيضًا باسم دالة التجزئة الضربية . [ 18 ] عمليًا، يمكن تجنب عامل باقي القسمة (mod ) والمعامل p تمامًا بالسماح للأعداد الصحيحة بالفيضان، لأنه يُكافئ باقي القسمة على ( أقصى قيمة عددية صحيحة + 1) في العديد من لغات البرمجة. ومع ذلك، فإن استخدام الأعداد غير الأوليةيكون المعامل عرضةً للتداخل مع بعض المدخلات ، بغض النظر عن قيمة a . يوضح الجدول أدناه القيم المختارة لتهيئة h و a لبعض التطبيقات الشائعة.
| تطبيق | القيمة الأولية | أ |
|---|---|---|
| دالة التجزئة لبرنشتاين djb2 [ 19 ] | 5381 | 33 |
| STLPort 4.6.2 | 0 | 5 |
| دالة التجزئة لكيرنيغان وريتشي [ 20 ] | 0 | 31 |
java.lang.String.hashCode()[ 21 ] | 0 | 31 |
لنفترض وجود سلسلتينودعليكن طول السلسلة الأطول؛ ولأغراض التحليل، يتم افتراضياً إضافة أصفار إلى السلسلة الأقصر حتى يصل طولها إلى الطول المطلوب.. حدوث تصادم قبل التطبيقيشير ذلك إلى أنهو جذر لكثير الحدود ذي المعاملاتتحتوي هذه المعادلة متعددة الحدود على أكثر منجذور moduloلذا فإن احتمال التصادم هو على الأكثراحتمالية التصادم من خلال العشوائيةيؤدي ذلك إلى زيادة احتمالية التصادم الكلية إلىوبالتالي، إذا كان العدد الأوليإذا كانت كبيرة بما يكفي مقارنة بطول السلاسل التي تم تجزئتها، فإن العائلة قريبة جدًا من العالمية (في المسافة الإحصائية ).
تشمل العائلات العالمية الأخرى لوظائف التجزئة المستخدمة لتجزئة السلاسل غير المعروفة الطول إلى قيم تجزئة ثابتة الطول بصمة رابين و Buzhash .
تجنب الحساب النمطي
للتخفيف من العبء الحسابي للحساب النمطي، يتم استخدام ثلاث حيل في الممارسة العملية: [ 11 ]
- يختار المرء العدد الأوليأن يكون العدد قريبًا من قوة العدد اثنين، مثل عدد ميرسين الأولي . وهذا يسمح بإجراء العمليات الحسابية بنمط moduloيمكن تنفيذ ذلك بدون قسمة (باستخدام عمليات أسرع مثل الجمع والإزاحة). على سبيل المثال، في البنى الحديثة، يمكن العمل مع، بينماالقيم هي قيم 32 بت.
- يمكن تطبيق التجزئة المتجهة على الكتل. على سبيل المثال، يتم تطبيق التجزئة المتجهة على كل كتلة من 16 كلمة في السلسلة، ويتم تطبيق تجزئة السلسلة علىالنتائج. بما أن تجزئة السلسلة الأبطأ يتم تطبيقها على متجه أصغر بكثير، فسيكون هذا في الأساس بنفس سرعة تجزئة المتجهات.
- يختار المرء قوة العدد اثنين كمقسوم عليه، مما يسمح بإجراء العمليات الحسابية بنمط باقي القسمة.يتم تنفيذها بدون قسمة (باستخدام عمليات أسرع لإخفاء البتات ). وتعتمد عائلة دوال التجزئة NH على هذا النهج.
انظر أيضاً
- التجزئة المستقلة عن k – عائلة من دوال التجزئة
- التجزئة المتداولة – نوع من أنواع دوال التجزئة. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه.
- التجزئة الجدولية – دوال التجزئة المحسوبة بواسطة عملية أو الحصرية
- الاستقلال على مستوى الحد الأدنى – تقنية استخراج البيانات: صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه
- دالة تجزئة أحادية الاتجاه عالمية
- المتتابعة ذات التباين المنخفض - نوع من المتتابعات الرياضية
- تجزئة مثالية – دالة تجزئة بدون أي تصادمات. صفحات تعرض أوصافًا مختصرة لوجهات إعادة التوجيه.
مراجع
- ١ ٢ ٣ ٤ ٥ كارتر، لاري؛ ويغمان، مارك ن. (١٩٧٩). "الفئات العامة لدوال التجزئة" . مجلة علوم الحاسوب والأنظمة . ١٨ (٢): ١٤٣-١٥٤ . doi : 10.1016/0022-0000(79)90044-8 . نسخة المؤتمر في STOC'77.
- ↑ ميلترسن، بيتر برو. "التجزئة الشاملة" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 24 مايو 2011. تم الاطلاع عليه في 24 يونيو 2009 .
- ↑ موتاني، راجيف؛ راغافان، برابهاكار (1995). الخوارزميات العشوائية . مطبعة جامعة كامبريدج. ص 221. ISBN 0-521-47465-5.
- ↑ ديفيد واغنر، محرر. "التطورات في علم التشفير - CRYPTO 2008" . ص 145.
- ↑ جان فيليب أوماسون، ويلي ماير، رافائيل فان، لوكا هينزن. "دالة التجزئة بليك" . 2014. ص 10.
- ↑ ثورب، ميكيل (2015). "التجزئة عالية السرعة للأعداد الصحيحة والسلاسل النصية". arXiv : 1504.06804 [ cs.DS ].
- 1 2 باران، إيليا؛ ديمين، إريك د.؛ باتراسكو، ميهاي (2008). "الخوارزميات التربيعية لـ 3SUM" (PDF) . خوارزمية . 50 (4): 584-596 . دوى : 10.1007 / s00453-007-9036-3 . S2CID 9855995 .
- ↑ ديتزفيلبينجر، مارتن؛ هاجيروب، توربن؛ كاتاجاينن، يركي؛ بينتونن، مارتي (1997). "خوارزمية عشوائية موثوقة لمسألة أقرب زوج" (ملحق) . مجلة الخوارزميات . 25 (1): 19-51 . doi : 10.1006/jagm.1997.0873 . تاريخ الاسترجاع: 10 فبراير 2011 .
- ^ ثوروب ميكيل (18 ديسمبر 2009). "خوارزميات الكتب النصية في SODA" .
- ↑ وولفيل، فيليب (1999). التجزئة القوية الشاملة الفعالة والتجزئة الشاملة المثلى . الأسس الرياضية لعلوم الحاسوب 1999. سلسلة محاضرات في علوم الحاسوب. المجلد 1672. الصفحات 262-272 . doi : 10.1007/3-540-48340-3_24 .
- 1 2 3 4 ثوروب، ميكيل (2009). تجزئة السلسلة للتحقيق الخطي . بروك. الندوة العشرين لـ ACM-SIAM حول الخوارزميات المنفصلة (SODA) . ص 655 – 664. CiteSeerX 10.1.1.215.4253 . دوى : 10.1137/1.9781611973068.72 . رقم ISBN 978-0-89871-680-1.القسم 5.3
- 1 2 ديتزفيلبينجر، مارتن؛ جيل، جوزيف؛ ماتياس، يوسي؛ بيبنجر، نيكولاس (1992). دوال التجزئة متعددة الحدود موثوقة (ملخص موسع) . وقائع الندوة الدولية التاسعة عشرة حول الأتمتة واللغات والبرمجة (ICALP) . الصفحات 235-246 .
- ↑ بلاك، ج.؛ هاليفي، س.؛ كراوتشيك، هـ.؛ كروفيتز، ت. (1999). UMAC: مصادقة الرسائل السريعة والآمنة (ملف PDF) . التطورات في علم التشفير (CRYPTO '99) .المعادلة 1
- ↑ باتراشكو، ميهاي ؛ ثورب، ميكيل (2011). قوة التجزئة الجدولية البسيطة . وقائع الندوة السنوية الثالثة والأربعين لجمعية آلات الحوسبة حول نظرية الحوسبة (STOC '11) . الصفحات 1-10 . arXiv : 1011.5200 . doi : 10.1145/1993636.1993638 . ISBN 9781450306911.
- 1 2 كاسر، أوين؛ ليمير، دانيال (2013). "التجزئة القوية الشاملة للسلاسل سريعة". مجلة الكمبيوتر . 57 (11). مطبعة جامعة أكسفورد: 1624-1638 . arXiv : 1202.4961 . doi : 10.1093/comjnl/bxt070 .
- ↑ "شرائح عرض دورة الجامعة العبرية" (ملف PDF) .
- ↑ روبرت أوزغاليس . "وظائف التجزئة المكتبية" . 1996.
- ↑ كانكوفسكي، بيتر. "وظائف التجزئة: مقارنة تجريبية" .
- ↑ يغيت، أوزان. "دوال التجزئة للسلاسل النصية" .
- ↑ كيرنيغان ؛ ريتشي (1988). "6" . لغة البرمجة سي ( الطبعة الثانية). برنتيس هول. ص 118. ISBN 0-13-110362-8.
{{cite book}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط ) - ↑ "String (Java Platform SE 6)" . docs.oracle.com . تم الاطلاع عليه بتاريخ 10-06-2015 .
للمزيد من القراءة
- كنوت، دونالد إرفين (1998). فن برمجة الحاسوب، المجلد الثالث: الفرز والبحث ( الطبعة الثالثة). ريدينغ، ماساتشوستس؛ لندن: أديسون-ويسلي. ISBN 0-201-89685-0.
روابط خارجية
- دوال التجزئة المشفرة
- التجزئة
- خوارزميات البحث
- نظرية التعقيد الحسابي
