تالار گفتمان مانشت
سوال ۳-۱۶.۳ __ clrs,Third Edition - نسخه‌ی قابل چاپ

سوال ۳-۱۶.۳ __ clrs,Third Edition - t!r - 19 اردیبهشت ۱۳۹۱ ۰۲:۳۴ ق.ظ

جواب این سوال؟؟؟
What is an optimal Huffman code for the following set of frequencies, based on the first 8 Fibonacci numbers

a:1 b:1 c:2 d:3 e:5 f:8 g:13 h:21

Can you generalize your answer to find the optimal code when the frequencies are the first n Fibonacci numbers


سوال ۳-۱۶.۳ کتاب clrs - ف.ش - ۱۹ اردیبهشت ۱۳۹۱ ۰۳:۱۳ ق.ظ

من الان دقیقا الگوریتم هافمن یادم نیست :

ولی فکر کنم حلش مثل کد هافمن با فرکانس معمولی هست با این تفاوت که اینجا وقتی دو حرفی که کمترین فرکانس رو دارن ادغام می کنید جمع فرکانسشون بزرگتر مساوی فرکانس حرف بعدی هست یعنی مکانش مشخصه.

مثلا اول ۱و۱ رو ادغام میکنید میشه ۲ بعد ۲ رو با ۲ ادغام میکنید میشه ۴ که این ۴ بین ۳ و ۵ قرار میگیره بعد ۳+۴ میشه ۷ و بین ۵ و ۸ قرار میگیره و الی آخر .

اگر درختشو بکشید واسه مثال بالا اگه اشتباه نکنم کدها به صورت زیر میشه :
h=0
,g=10,
f=110,
e=1110
a=1111110
b=1111111

همونطور که می بینید کدها کاملا قابل پیش بینی هست ولی طولانی هست.

سوال ۳-۱۶.۳ __ clrs,Third Edition - t!r - 20 اردیبهشت ۱۳۹۱ ۰۳:۰۰ ق.ظ

شما وقتی ۲ رو با۲ جمع کردین، ۲ :c رو سمت چپ (۲ قرمز) آوردین ،چرا؟_ولی اگه سمت راست میاوردین (کادرقرمز)،کدهای a,b,c تغییرمیکرد.
(۰۵ بهمن ۱۳۸۹ ۰۴:۱۲ ب.ظ)admin نوشته شده توسط:  الگوریتم هافمن باید نتیجه بهینه رو بده، در صورتی که جواب غیر بهینه پاسخ باشه طراح اشتباه کرده و می‍شه اعتراض کرد. دوستان منطقی فکر کنید!. در ضمن الگوریتم هافمن هیچ اجباری به چپ یا راست بودن مجموع در ترکیب جدید نداره .در واقع اینکه چپ باشه یا راست تفاوتی نداره. چون که ضرب فراوانی در کدهای ایجاد شده در این دو درخت مثل هم می‍شه.
این الگوریتم خیلی پیچیده نیست و می‍شه حالت‍های مختلف رو به راحتی آزمایش کرد و یکی از هنرهای شما سرجلسه آزمودن روش‍های مختلف هست که باید به سرعت انجام بدین.
[تصویر:  attachment.php?aid=4244][تصویر:  attachment.php?aid=4289]