• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

کد سازی (5 امتیاز)

وضعیت
موضوع بسته شده است.
  • شروع کننده موضوع
  • #1

!!...me

کاربر حرفه‌ای
ارسال‌ها
411
امتیاز
568
نام مرکز سمپاد
دبیرستان فرزانگان ۲ تهران
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی کامپیوتر-نرم افزار
یک موسسه انتقال پیام برای ارسال پیام های خود که شامل 7 نوع حرف ِ مختلف ، G،F،E،D،C،B،A است ؛ از دستگاهی مانند تلگراف استفاده میکند . با این تفاوت که بین حرف های مختلف پیام فاصله ای وجود ندارد ( هر حرف مثه تلگراف یه کد شامل یه خط ُ یه نقطه داره!) نکته ی مهم در ایجاد کد برای این حروف قابل بازسازی بودن ِ کدهاست ! چون اگه مثلاً کد نقطه ی A نقطه و کد نقطه ی B نقطه نقطه باشه ، از روی ِ کد نقطه نقطه نمیتونیم بفهمیم کد AA ِ یا B ! فرستادن هر نقطه نیم ثانیه و فرستادن ِ هر خط هم یک ثانیه طور میکشه ... با فرض ِ اینکه در یک متن ِ 100 حرفی احتمال آمدن ِ C ، F ، E ، B ، A ، G ، D به ترتیب : 31 ، 19 ، 10 ، 20 ، 7 ، 4 و 9 درصد باشه ، آیا میتونید برای هر حرف یه کد ِ قابل بازسازی پیدا کنید به طوری که فرستادن این پیام 100 حرفی به طور ِ متوسط کم تر از 190 ثانیه طول بکشه ؟

+ راه حل ِ کامل ... #S-:
 
  • شروع کننده موضوع
  • #2

!!...me

کاربر حرفه‌ای
ارسال‌ها
411
امتیاز
568
نام مرکز سمپاد
دبیرستان فرزانگان ۲ تهران
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی کامپیوتر-نرم افزار
پاسخ : کد سازی (5 امتیاز)

میگم میخواین راهنمایی کنم ؟ :-\

+ چرا کسی هیچ تلاشی در جهت ِ حل نمی کنه ؟ :-w
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,051
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
پاسخ : کد سازی (5 امتیاز)

فکر کنم این با استفاده از الگوریتم huffman بشه همچین کاری انجام داد.
اگر از این راه هست بگید که توضیح بدم
 
  • شروع کننده موضوع
  • #4

!!...me

کاربر حرفه‌ای
ارسال‌ها
411
امتیاز
568
نام مرکز سمپاد
دبیرستان فرزانگان ۲ تهران
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی کامپیوتر-نرم افزار
پاسخ : کد سازی (5 امتیاز)

به نقل از آرمان حقیقی :
فکر کنم این با استفاده از الگوریتم huffman بشه همچین کاری انجام داد.
اگر از این راه هست بگید که توضیح بدم

دقیقاً درسته ...

اگه میشه توضیح بدید راه ِ حل رو ...
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,051
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
پاسخ : کد سازی (5 امتیاز)

خب اینطوریه که اول اعداد رو به ترتیب از کم به زیاد مینویسیم

0.31 0.20 0.19 0.10 0.09 0.07 0.04
F E C A G B D
حالا دو تا عدد کوچکتر رو جمع می زنیم.تبدیل میشه به یه درخت به شکل پایین
کوچیکه میره سمت راست و 1 میشه
بزرگتره میاد سمت چپ و 0 میشه
حالا باز اعداد رو sort می کنیم و باز همین کار رو انجام میدیم
این کار رو تا آخر انجام میدیم
من مرحله به مرحله این کار رو انجام دادم.این شکلی شد


مثلا F میشه
0111
یا مثلا A میشه
110
 
  • شروع کننده موضوع
  • #6

!!...me

کاربر حرفه‌ای
ارسال‌ها
411
امتیاز
568
نام مرکز سمپاد
دبیرستان فرزانگان ۲ تهران
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی کامپیوتر-نرم افزار
پاسخ : کد سازی (5 امتیاز)

مرسی از توضیح ...

قفل میشه ! :D
 
وضعیت
موضوع بسته شده است.
بالا