دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: در ساخت اين پروژه به راهنمايى نياز دارم

  1. #1
    کاربر حرفه ای
    رشته تحصیلی
    آب و خاک
    نوشته ها
    6,338
    ارسال تشکر
    36,121
    دریافت تشکر: 19,588
    قدرت امتیاز دهی
    34267
    Array
    *FATIMA*'s: جدید75

    Question در ساخت اين پروژه به راهنمايى نياز دارم

    ١
    پروژه درس ساختمان داده

    Project : Huffman Coding

    کد گذاری Huffman یک طرح است که کدبیت هایی با طول های متفاوت را به کاراکترها اختصاص میدهد.به طوری که طول کدها به تکرار کاراکترها در یک پیام معمولی بستگی دارد. به عنوان یک نتیجه، پیام های کد گذاری شده یا همان encoded messages به فضای کمترنیاز دارند. (در مقایسه با کد گذاری با طول ثابت ) از این رو کلماتی که بیشتر ظاهر میشن اغلب کدهای کوتاه تر به آن ها اختصاص داده شده است. این انجام میشه با اول ساختن درخت کد گذاری Huffman coding tree)Huffman )براساس یک سری تکرارهای داده شده. از درخت، کد بیت هایی برای هر کاراکتر تعیین می شود و سپس مورد استفاده برای رمزی کردن پیام قرار میگیرد. این درخت نیز استفاده می شود برای رمزگشایی پیام های کد گذاری شده به طوری که آن فراهم می کند یک راه برای تعیین اینکه کدام رشته بیت های ترجمه بر میگرده به یک کاراکتر.
    انتساب:
    برای این انتساب شما باید 3 برنامه بنویسید.
    Buildtree: ساخت درخت: با در نظر گرفتن یک فایل که شامل توزیع فراوانی برای هر 26 حرف از حروف الفبا به علاوه سه کاراکترهای خاص (فضا، خط جدید، و پایان پیام)، ساخت درخت دو فایل تولید میکند: فایل کدگذاری هافمن درخت و یک فایل حاوی وظایف هر کد.
    Encode :رمز گذاری: با توجه به فایل کد بیتی که توسط ساخت درخت تولید شده، و یک فایل متنی حاوی پیام،
    رمز encode یک فایل باینری که حاوی پیام رمزی شده است تولید می کند.
    Decode: رمزگشایی: با توجه به فایل کدگذاری هافمن درخت که توسط ساخت درخت تولید شده ، و پیام کد گذاری شده ی
    ایجاد شده توسط رمزگذاری encode، رمزگشا پیام اصلی را دوباره تولید می کندو پیام رادر یک فایل متنی چاپ کند.

    شما ممکن فرض کنید که پیام ها در حروف کوچک نوشته شده اند.فایل تکرار یک فایل متنی با 29 خط است، جایی که هر خط شامل یک حرف (و یا یک کاراکتر خاص) و به دنبال آن یک فضا space است.و یک عدد صحیح مثبت (رشته ای از ارقام).دراین فایل تکرار، برای کاراکترهای خاص کدها به شرح زیر است‘''برای فضای،‘!’خط جدید، و '+' برای پایان پیام.
    فایل درخت نمایندگی متوالی از درخت ساخته شده درساخت درخت buildtree است تا خوانده شودوباز افرینی شود در رمزگشا decode.
    فایل بیت کد 29 خط فایل متنی است. هر خط در این فایل حاوی یک حرف (یا کاراکترویژه) به دنبال آن فضا spaceو سپس رشته ای از 1 ها و 0 ها.ترتیب کاراکترهای این فایل به شرح زیر است.'A' تا 'Z'، فضا space، نقطه، خط جدید، پایان پیام.
    فایل پیام متشکل از خطوط حاوی حروف کوچک ، فضاهای واقعی ( نه ‘-’)، ونقطه ها.هنگام تفسیر فایل پیام، یک کاراکتر تعویض خط در پایان هرخط به طور ضمنی است، و یک کاراکتر نهایی از پیام است که در انتهای فایل به طور ضمنی است.
    فایل کد گذاری جریانی از بایت های است که بیت های متناظر را کد می کند. در صورتیکه نتیجه شمارش تعداد بیت ها مضربی از 8 نیست، اضافه کنید بیت به اندازه کافی (با مقدار 0) تا بیت نهایی را بسازید.
    هنگامی که رمزگشا decode را اجرا میکنید، توجه کنید که کاراکتر پایان پیام مهم است چون مشخص میکند هنگامی را که باید رمز گذاری متوقف شودبه خصوص اگر بیت های باقی مانده در آخرین بایت ازپیام کد گذاری شده وجود داشته باشد.

    فایل نمونه قبلا در این سند ارائه شده است.

    Data Structures ساختمان های داده: شما باید از یک گره پویا برای پیاده سازی یک درخت دودویی برای نشان دادن کدگذاری هافمن درخت استفاده کنید. توجه داشته باشید که گره های داخلی و برگ در درخت حاوی اطلاعات مختلف است. برای سادگی،از درخت ساختمان داده شبیه هم برای ساخت درخت buildtree و رمزگشایی decode استفاده کنید.
    ساختن درخت هافمن شامل ترکیب های متوالیی میشود دو گره ه با حداقل ارزش یا زیر درخت.در مورد روابط برای مقادیر حداقل، disambiguate با استفاده از قوانین زیر است:


    •چند گره در زیردرخت subtrees مقدم بر گره تنها است.
    •زیر درختی که به تازگی ایجاد شده مقدم بر سایر زیر درخت ها می باشد.
    • یک گره منفرد که زودتر در لیست حروف الفبا ظاهر می شود اولویت ان بیش از گره های دیگر تنها است. فضا، نقطه، خط دید، پایان پیام (به همین ترتیب) در لیست حروف الفبا بعد از z قرار میگیرد.
    ساده ترین راه برای اجرای قوانین داده شده در بالا این است که یک لیست از درختان طبقه بندی شده براساس وزن تنظیم کنیم . این لیست آغاز می شود به عنوان یک لیست از گره های تنهای مرتب شده براساس وزن، از ترتیب حروف الفبای گره ها در صورت مساوی بودن وزنشان استفاده کنید. شما سپس بارها و بارها دو مورد اول در لیست را باید حذف کنید وان ها را به شکل یک زیر درخت ترکیب کنید.زیر درخت نتیجه را دوباره در این لیست با توجه به وزن جدیدش قرار می دهیم. در صورتی که عناصر در لیست با همان وزن زیر درخت وجود دارد، زیر درخت را درست قبل از اولین مورد با ان وزن قرار دهید. بازنمودهای متوالی از یک درخت دودویی در بخش 6.5 (صفحات 208-210) از متن مورد بحث قرار گرفته است... شما مجاز به استفاده از هر یک از روش های پیشنهاد شده هستیدو فرمت فایل خود را اختراع کنید زمانی فایلی که شما تولید کردید یک فایل متنی قابل خواندن است که توسط TAS قابل تفسیرباشد. طبق معمول،برای شما ممکن نیست که از stl استفاده کنیداما این امکان وجود دارد که تقلید کنید از کد خودتان اگر کد موجود درکتاب درسی باشد.
    Program Invocation:برنامه ها به شرح زیر استفاده می شود.
    buildtree <frequencyfile> <treefile> <codefile>
    encode <codefile> <messagefile> <encodedmessagefile>
    decode <treefile> <encodedmessagefile> <messagefile>
    اگر خط فرمان شامل استدلال کافی نباشد و یا در صورتی که هر یک از فایل های ورودی مشخص وجود ندارد، این برنامه باید یک پیغام خطا مناسب چاپ کندو خارج شود.
    نمونه هایی از فایل های ورودی وخروجی:
    frequency.txt
    c ٤
    d ٢
    - ١٥
    a ١١
    b ٧
    e ٢٠
    ! ٤
    + ١
    f ٥
    . ٠
    z ٠
    w 0
    بقیه کلمات تکرارشان0 است))
    codes.txt
    a ١٠١
    b ٠٠١
    c ٠٠٠١
    d ٠٠٠٠١
    e ١١
    f ١٠٠١
    g ...
    h ...
    z ...
    - ٠١
    . ...
    ! ١٠٠٠
    + ٠٠٠٠٠١
    message.txt
    a bad
    face
    encodedmessage.bin
    این یک فایل باینری 6 بیتی است))
    ١٠١٠١٠٠١ ١٠١٠٠٠٠١ ١٠٠٠١٠٠١ ١٠١٠٠٠١١ ١١٠٠٠٠٠٠
    ٠٠١٠٠٠٠٠
    علف هرز چيست ؟!
    گياهى است كه هنوز فوايدش كشف نشده است
    ....
    بحث: زندگی با گیاهان دارویی


  2. 2 کاربر از پست مفید *FATIMA* سپاس کرده اند .


  3. #2
    دوست آشنا
    رشته تحصیلی
    عمران
    نوشته ها
    847
    ارسال تشکر
    907
    دریافت تشکر: 6,263
    قدرت امتیاز دهی
    16274
    Array
    امـیـر بـیـگـی's: خنده2

    پیش فرض پاسخ : در ساخت اين پروژه به راهنمايى نياز دارم

    نقل قول نوشته اصلی توسط *FATIMA* نمایش پست ها
    ١
    پروژه درس ساختمان داده

    Project : Huffman Coding

    کد گذاری Huffman یک طرح است که کدبیت هایی با طول های متفاوت را به کاراکترها اختصاص میدهد.به طوری که طول کدها به تکرار کاراکترها در یک پیام معمولی بستگی دارد. به عنوان یک نتیجه، پیام های کد گذاری شده یا همان encoded messages به فضای کمترنیاز دارند. (در مقایسه با کد گذاری با طول ثابت ) از این رو کلماتی که بیشتر ظاهر میشن اغلب کدهای کوتاه تر به آن ها اختصاص داده شده است. این انجام میشه با اول ساختن درخت کد گذاری Huffman coding tree)Huffman )براساس یک سری تکرارهای داده شده. از درخت، کد بیت هایی برای هر کاراکتر تعیین می شود و سپس مورد استفاده برای رمزی کردن پیام قرار میگیرد. این درخت نیز استفاده می شود برای رمزگشایی پیام های کد گذاری شده به طوری که آن فراهم می کند یک راه برای تعیین اینکه کدام رشته بیت های ترجمه بر میگرده به یک کاراکتر.
    انتساب:
    برای این انتساب شما باید 3 برنامه بنویسید.
    Buildtree: ساخت درخت: با در نظر گرفتن یک فایل که شامل توزیع فراوانی برای هر 26 حرف از حروف الفبا به علاوه سه کاراکترهای خاص (فضا، خط جدید، و پایان پیام)، ساخت درخت دو فایل تولید میکند: فایل کدگذاری هافمن درخت و یک فایل حاوی وظایف هر کد.
    Encode :رمز گذاری: با توجه به فایل کد بیتی که توسط ساخت درخت تولید شده، و یک فایل متنی حاوی پیام،
    رمز encode یک فایل باینری که حاوی پیام رمزی شده است تولید می کند.
    Decode: رمزگشایی: با توجه به فایل کدگذاری هافمن درخت که توسط ساخت درخت تولید شده ، و پیام کد گذاری شده ی
    ایجاد شده توسط رمزگذاری encode، رمزگشا پیام اصلی را دوباره تولید می کندو پیام رادر یک فایل متنی چاپ کند.

    شما ممکن فرض کنید که پیام ها در حروف کوچک نوشته شده اند.فایل تکرار یک فایل متنی با 29 خط است، جایی که هر خط شامل یک حرف (و یا یک کاراکتر خاص) و به دنبال آن یک فضا space است.و یک عدد صحیح مثبت (رشته ای از ارقام).دراین فایل تکرار، برای کاراکترهای خاص کدها به شرح زیر است‘''برای فضای،‘!’خط جدید، و '+' برای پایان پیام.
    فایل درخت نمایندگی متوالی از درخت ساخته شده درساخت درخت buildtree است تا خوانده شودوباز افرینی شود در رمزگشا decode.
    فایل بیت کد 29 خط فایل متنی است. هر خط در این فایل حاوی یک حرف (یا کاراکترویژه) به دنبال آن فضا spaceو سپس رشته ای از 1 ها و 0 ها.ترتیب کاراکترهای این فایل به شرح زیر است.'A' تا 'Z'، فضا space، نقطه، خط جدید، پایان پیام.
    فایل پیام متشکل از خطوط حاوی حروف کوچک ، فضاهای واقعی ( نه ‘-’)، ونقطه ها.هنگام تفسیر فایل پیام، یک کاراکتر تعویض خط در پایان هرخط به طور ضمنی است، و یک کاراکتر نهایی از پیام است که در انتهای فایل به طور ضمنی است.
    فایل کد گذاری جریانی از بایت های است که بیت های متناظر را کد می کند. در صورتیکه نتیجه شمارش تعداد بیت ها مضربی از 8 نیست، اضافه کنید بیت به اندازه کافی (با مقدار 0) تا بیت نهایی را بسازید.
    هنگامی که رمزگشا decode را اجرا میکنید، توجه کنید که کاراکتر پایان پیام مهم است چون مشخص میکند هنگامی را که باید رمز گذاری متوقف شودبه خصوص اگر بیت های باقی مانده در آخرین بایت ازپیام کد گذاری شده وجود داشته باشد.

    فایل نمونه قبلا در این سند ارائه شده است.

    Data Structures ساختمان های داده: شما باید از یک گره پویا برای پیاده سازی یک درخت دودویی برای نشان دادن کدگذاری هافمن درخت استفاده کنید. توجه داشته باشید که گره های داخلی و برگ در درخت حاوی اطلاعات مختلف است. برای سادگی،از درخت ساختمان داده شبیه هم برای ساخت درخت buildtree و رمزگشایی decode استفاده کنید.
    ساختن درخت هافمن شامل ترکیب های متوالیی میشود دو گره ه با حداقل ارزش یا زیر درخت.در مورد روابط برای مقادیر حداقل، disambiguate با استفاده از قوانین زیر است:


    •چند گره در زیردرخت subtrees مقدم بر گره تنها است.
    •زیر درختی که به تازگی ایجاد شده مقدم بر سایر زیر درخت ها می باشد.
    • یک گره منفرد که زودتر در لیست حروف الفبا ظاهر می شود اولویت ان بیش از گره های دیگر تنها است. فضا، نقطه، خط دید، پایان پیام (به همین ترتیب) در لیست حروف الفبا بعد از z قرار میگیرد.
    ساده ترین راه برای اجرای قوانین داده شده در بالا این است که یک لیست از درختان طبقه بندی شده براساس وزن تنظیم کنیم . این لیست آغاز می شود به عنوان یک لیست از گره های تنهای مرتب شده براساس وزن، از ترتیب حروف الفبای گره ها در صورت مساوی بودن وزنشان استفاده کنید. شما سپس بارها و بارها دو مورد اول در لیست را باید حذف کنید وان ها را به شکل یک زیر درخت ترکیب کنید.زیر درخت نتیجه را دوباره در این لیست با توجه به وزن جدیدش قرار می دهیم. در صورتی که عناصر در لیست با همان وزن زیر درخت وجود دارد، زیر درخت را درست قبل از اولین مورد با ان وزن قرار دهید. بازنمودهای متوالی از یک درخت دودویی در بخش 6.5 (صفحات 208-210) از متن مورد بحث قرار گرفته است... شما مجاز به استفاده از هر یک از روش های پیشنهاد شده هستیدو فرمت فایل خود را اختراع کنید زمانی فایلی که شما تولید کردید یک فایل متنی قابل خواندن است که توسط TAS قابل تفسیرباشد. طبق معمول،برای شما ممکن نیست که از stl استفاده کنیداما این امکان وجود دارد که تقلید کنید از کد خودتان اگر کد موجود درکتاب درسی باشد.
    Program Invocation:برنامه ها به شرح زیر استفاده می شود.
    buildtree <frequencyfile> <treefile> <codefile>
    encode <codefile> <messagefile> <encodedmessagefile>
    decode <treefile> <encodedmessagefile> <messagefile>
    اگر خط فرمان شامل استدلال کافی نباشد و یا در صورتی که هر یک از فایل های ورودی مشخص وجود ندارد، این برنامه باید یک پیغام خطا مناسب چاپ کندو خارج شود.
    نمونه هایی از فایل های ورودی وخروجی:
    frequency.txt
    c ٤
    d ٢
    - ١٥
    a ١١
    b ٧
    e ٢٠
    ! ٤
    + ١
    f ٥
    . ٠
    z ٠
    w 0
    بقیه کلمات تکرارشان0 است))
    codes.txt
    a ١٠١
    b ٠٠١
    c ٠٠٠١
    d ٠٠٠٠١
    e ١١
    f ١٠٠١
    g ...
    h ...
    z ...
    - ٠١
    . ...
    ! ١٠٠٠
    + ٠٠٠٠٠١
    message.txt
    a bad
    face
    encodedmessage.bin
    این یک فایل باینری 6 بیتی است))
    ١٠١٠١٠٠١ ١٠١٠٠٠٠١ ١٠٠٠١٠٠١ ١٠١٠٠٠١١ ١١٠٠٠٠٠٠
    ٠٠١٠٠٠٠٠
    ببخشید میشه یه توضیح کوتاه بدید که چه کمکی میخواهید؟؟




  4. کاربرانی که از پست مفید امـیـر بـیـگـی سپاس کرده اند.


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •