زمان کنونی: ۰۹ اردیبهشت ۱۴۰۳, ۰۹:۵۷ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

درهم سازی زنجیره ای

ارسال:
  

peace2013 پرسیده:

درهم سازی زنجیره ای

درهم سازی زنجیره ای


فایل‌(های) پیوست شده

نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

msour44 پاسخ داده:

RE: درهم سازی زنجیره ای

سلام
برای کاهش هزینه جستجو در جدول باید تابع درهم ساز به گونه ای باشد که توزیع کلید ها در جدول یکنواخت باشد یعنی تا حد امکان کلید ها در تمامی مدخل پراکنده باشند(زنجیره سازی) مثلا اگر تمام کلید ها در یک مدخل جمع شوند هزینه جستجو زیاد می شود در واقع تابع جستجو با توجه به تابع درهم ساز مدخل مورد نظر را انتخاب می کند حالا از بین کلید های موجود در ان مدخل باید جستجو انجام گیرد تا کلید یافت شود پس هر چقدر کمتر باشد هزینه جستجو کمتر می شود.
نکته ای که درباره تابع درهم ساز تقسیم می توان به ان اشاره کرد این است که در [tex]k\: \mod\: n[/tex] نمی توانیم برای n هر مقدار دلخواهی را انتخاب کرد چرا که باعث استفاده ناکارامد از پتانسیل جدول می شود. یک قاعده کلی وجود دارد بهتر است n را یک عدداول دور از اعداد توان ۲ انتخاب کنیم(نزدیک به توانی از ۲ نباشد) در این تست در گزینه ها دو عدد اول ۷ و ۱۱ وجود دارد که ۷ تا ۸ اختلاف یک واحدی دارد و ۱۱ تا ۸ سه واحدو از ۱۶ هم دور است پس ۱۱ گزینه مناسبی در n است البته نمی توان دقیقا برحسب اینکه اختلاف ۱۱ بیشتر است گفت ۱۱ بهتر است. چوت محدوده و مقدار کلید ها هم در مناسب بودن تابع درهم ساز نقش دارد که البته بررسی ان کمی زمان بر می شود و احتمال زیاد تست به همین نکته ای که گفتیم اشاره دارد.
ولی برای بررسی اینکه برای هریک از n های داده شده کدام بهتر است و کدام کلید ها به کدام مدخل ها وارد می شودند به صورت زیر عمل می کنیم.
کلید های ما [tex]P^2[/tex] هستند که p از ۱ تا ۱۰۰ است پس تابع ما برابر با [tex]p^2\: \mod\: n[/tex] و از طرفی داریم
[tex]p^2\: \mod\: n=p\: \ast\: p\: \: \mod\: n=(p\: \mod\: n)(p\: \mod\: n)\: \mod\: n=(p\: \mod n)^2\: \mod\: n[/tex]
پس کافی است به p مقادیر ۱ تا ۱۰۰ بدیم و بررسی کنیم به کدام مدخل ها وارد می شوند
برای n=9 کافی است کلید های ۱ تا ۹ را بررسی کنیم و از ان به بعد روند تکراری است
۱ به مدخل یک و ۲ به مدخل ۴ و ۳ به مدخل صفر و ۴ به مدخل ۷ و ۵ به مدخل ۷ و ۶ به مدخل صفر و ۷ به مدخل ۴ و ۸ به مدخل ۱ و ۹ به مدخل صفر وازاین جا به بعد دنباله مد خل های تخصیصی تکرار می شود اگر دقت کنید ۲(۱) یعنی دوتا کلید در مدخل یک و ۲(۴) و ۳(۰) و ۲(۷ ) داریم حالا در ۱۰۰ تعداد ۱۱ تا ازاین دنباله ها داریم پس ۲۲(۱) و۲۲(۴)و۳۳(۰)و۲۲(۷) داریم این تا کلید ۹۹ است کلید ۱۰۰ هم به مدخل یک رجوع می کند پس۲۳(۱) خواهیم داشت
برای n=12 هم اگر همین روند را بریم داریم ۳۳(۱) و۳۴(۴) و ۱۷(۹) و ۱۶(۰)
برای n=7 هم ۱۴(۰) و ۲۹(۱) و ۲۸(۲) و ۲۹(۴)
برای n=11 هم ۹(۰) و۱۸(۳) و ۱۸(۵) و ۱۸(۹) و ۱۸(۴) و۱۹(۱)
همان طور که میبینید برای n=11 توزیع کلید ها متوازن تر است
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  پکیج آموزشی طراحی وب + فارسی سازی وردپرس + سئو Happiness.72 ۶ ۶,۳۶۵ ۱۸ بهمن ۱۳۹۹ ۰۱:۱۵ ب.ظ
آخرین ارسال: saqarmoshtaq
  مرتب سازی سریع تصادفی چیست؟ Xzrix ۰ ۱,۴۰۷ ۱۴ آذر ۱۳۹۹ ۰۷:۲۲ ب.ظ
آخرین ارسال: Xzrix
  شبیه سازی مقاله Q-Learning kadoos ۱۶ ۱۵,۴۳۷ ۲۵ آبان ۱۳۹۹ ۰۹:۱۹ ب.ظ
آخرین ارسال: nasim.nasim۱
  کتاب شبیه سازی آمنت omnet++ berkeley ۱ ۳,۹۰۲ ۰۴ اردیبهشت ۱۳۹۹ ۱۲:۳۳ ق.ظ
آخرین ارسال: محمد رستمی
  سئو چیست؟ - سئو - بهینه سازی سایت msnmsn ۲ ۲۵ ۲۳ آبان ۱۳۹۸ ۰۱:۱۳ ب.ظ
آخرین ارسال: xiaomi
  مجموعه آموزش تصویری ابزار شبیه سازی و بررسی پروتکل امنیتی اسکایتر net work ۰ ۲,۳۷۱ ۲۲ فروردین ۱۳۹۸ ۰۳:۲۵ ب.ظ
آخرین ارسال: net work
  برگ برگ سازی Sanazzz ۱ ۱,۹۳۷ ۱۳ فروردین ۱۳۹۸ ۰۸:۱۸ ب.ظ
آخرین ارسال: Sanazzz
  راهنمایی برای انتخاب موضوع قابل پیاده سازی در زمینه بیگ دیتا برای پایان نامه one hacker alone ۱ ۳,۰۲۹ ۱۸ بهمن ۱۳۹۷ ۰۶:۳۶ ب.ظ
آخرین ارسال: Happiness.72
  ابزار شبیه سازی پروتکل های امنیت شبکه - ابزار اسکایتر mavin1200 ۰ ۲,۱۶۲ ۰۱ آذر ۱۳۹۷ ۰۱:۵۰ ق.ظ
آخرین ارسال: mavin1200
  بهینه سازی چند هدفه فازی استوارژنتیک alighasemi ۰ ۱,۹۲۶ ۲۴ آبان ۱۳۹۷ ۰۴:۵۵ ب.ظ
آخرین ارسال: alighasemi

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close