تالار گفتمان مانشت

نسخه‌ی کامل: سوال كدهافمن كنكور92 اي تي
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
اگه ممکنه این دوجمله رو واسه من تشرحیش کنید!
1-اگه فراوانی نویسه ای بیش از2/5 باشد طول کد این نویسه 1 خواهد بود. چطوری به این نتیجه برسم؟
2-اگر فراوانی همه نویسه ها کمتر از 1/3 باشد طول کد همه ی نویسه ها بیش از 1 خواهد بود.
تشکر
این سوال قبلا بحث شده. سنجش گفته هر دو درسته. اما من یه مثال نقض دارم برای 1.
اگه مجموع فراوانی ها 20 باشه و دو تا از حروف فراوانیشون 9 باشه و 2 تای دیگه هر کدوم، 1 ، یکی از اونایی که 9 تایی هستند، یکیشون فقط طول کدش یک میشه. این قسمت فقط در حالتی درسته که فراوانی کدها مثل هم نباشه.
قسمت دوم هم اگه 4 تا حرف هر کدوم با فراوانی 1 در نظر بگیریم، درست میشه. دقت کنید که باید کوچکتر از یک سوم باشه. اگه برابر باشه نمیشه

Sent from my SM-T210R using Tapatalk
کجا بحث شده؟من گشتم تو تایپیک ها نبود
اگر سوالو به دقت بخونین گفته فقط یه کاراکتر(حرف) میتونه بیش از 2/5 باشه .هر طوریم حساب کنی و مثال بیاریم باز طول این کد یکه.

مثلا اگه 3 تا کاراکتر داشته باشیم یکیش 41 و دو تای دیگه 39 و 20 بگیری که جمعا میشه 100 کاراکتر . اونوقت بکشی اینو 20 و 39 رو با هم میگیری و جوابش رو با 41 میگیری پس طول کد 41 یکه.

آقا هومن اشتباه میکنید Shyنمیتونیم 2 تا 9 بگیریم فقط و فقط یکی باید بیشتر از 2/5 باشه یعنی بگیریم مثلا یکیشو 8 و دو تای دیگه 1 و 1 کلا از 10 حرف گرفتم اونوقت بازم 1و1 با هم بگیری و جوابشو با 8 بگیری طول کد 8 دقیقا یک میشه.و فرض درسته.
چرا نمیشه 2 تا 9؟ تو صورت سوال که اسمی از یک کاراکتر نیاورده

Sent from my SM-T210R using Tapatalk
سلام

نمیدونم کجای حرفمو متوجه نشدی .

ولی ببین سوال گفته یه کاراکتر از بین حروف باید بیش تر از 2/5 باشه.
فرض کن ما 100 حرف داریم اگر 2/5 ضربدر 100 کنی که اعشاری بیرون بیاد (برای راحتی کار اینکارو میکنیم) اونوقت 2/5 ضربدر 100 کنی میشه 40 چون گفته بیشتر از 2/5 پس تو 40 نمیتونی بگیری باید ازش بزرگتر بگیری مثلا 41 چون نگفته همه کاراکترها بیشتر از 2/5 فقط روی یه کاراکتری تاکید کرده بقیه حروفو کمتر از 2/5 بگیر مثلا 20 و 39 بگیری دقت کن چون ما 100 حرف داریم مجموع 3 عدد باید 100 باشه البته با فرض مسئله که باید رعایت کنیم.
خوب برای کشیدن درخت هافمن میدونی اول اعداد رو از کوچیک به بزرگ مرتب کن که میشه به این صورت:

20-39-41

خوب ما میدونیم در کشیدن درخت هافمن باید دو عدد کوچیکترو با هم بگیریم یعنی 20و39 رو با هم بگیریم مجموعش میشه 59 و حالا 59 رو با 41 بگیری میشه 100 اگر همین درختو خودت بکشی به همین روال میبینی طول حرف 41 کاراکتر میشه یک ولی دوتای دیگه میشه 2 پس این عبارت سوال درسته .

امیدوارم فهمیده باشی.Shy
مرسی ترانه جون کاملا گویا بود لطف کن جمله بعدیم ی توضیح اینجوری بده
تشکر
جمله دومم روالش مثل بالا فرض کن باز ما 4 تا حرف داریم چون گفته کمتر از 1/3 خوب همون 33 صدم ضربدر 100 کنی میشه 33 خوب 4 تا حرف در نظر بگیری مثل 32-32-32-4 که مجموعشون 100 بشه (چون فرض کردم 100 تا حرف دارم).

خوب بخوای درختو بکشی فراوانی رو به ترتیب از کوچیک به بزرگ مرتب کن:32-32-32-4

خوب 4و 32 را با هم بگیر میشه 36.

دوباره حرفو مرتب کن میشه 32-32-36

حالا دو تای کمترو با هم بگیر یعنی 32 و 32 با هم 64 .

پس یکبار مجموع شد 36 و بار دیگه 64 میشه 100 بکشی درختو میبینی دقیقا طول همه حروف بیشتر از یک شد.

موفق باشید.ShyShyShy
من با نظر آقا هومن موافقم....توی صورت سوال دقیقا نوشته" اگر فراوانی نویسه ای بیش از 2/5 باشد"...نگفته فقط یک نویسه..مثالی هم ک آقا هومن زدن مشمول این جمله میشه یعنی نویسه ای هست که فراوانیش بیش از 2/5 ...
مطمئن باشید اگر جواب درسته همین حالته چون اگر به فرض 2 تا 9 بگیری و یکی 2 که بشن 20 اونوقت مرتب کنی میشه.

2-9-9 خوب شما اگه این درختوو بکشی 2و 9 رو با هم میگیری میشه 11 و بعد جوابشو با 9 بگیری میشه 20 خوب اینجا ما کدوم 9 رو جواب بگیریم یه بار طولش یک و بار دیگه 2 پس منظور طراح سوال این حالت نبوده که جواب درست اون حالت شده.Shy
(06 بهمن 1392 11:11 ب.ظ)tarane1992 نوشته شده توسط: [ -> ]مطمئن باشید اگر جواب درسته همین حالته چون اگر به فرض ۲ تا ۹ بگیری و یکی ۲ که بشن ۲۰ اونوقت مرتب کنی میشه.

۲-۹-۹ خوب شما اگه این درختوو بکشی ۲و ۹ رو با هم میگیری میشه ۱۱ و بعد جوابشو با ۹ بگیری میشه ۲۰ خوب اینجا ما کدوم ۹ رو جواب بگیریم یه بار طولش یک و بار دیگه ۲ پس منظور طراح سوال این حالت نبوده که جواب درست اون حالت شده.Shy

به نظر من هم هیچ جای سوال این مساله مطرح نشده که فقط یکی از کاراکترها بیشتر از ۲/۵ = ۰/۴ باشه. مثالی که من زدم این بود که یکی از کاراکترها ۰/۴۱ یکی دیگه ۰/۴۲ و دیگری ۰/۱۷ باشه. دو تا کاراکتر بیشتر از ۰/۴ هستن و یکی‌شون با ۲ بیت و دیگری با ۱ بیت نمایش داده می‌شه. خواستم بگم لزومی نداره که حتما مساوی باشن.
لینک مرجع