در این قسمت تیم کدگیت سورس الگوریتم هافمن در پایتون (huffman) را برای شما تهیه کرده است. الگوریتم هافمن یکی از الگوریتم های فشرده سازی یا compression است امروزه از آن استفاده می شود. این الگوریتم به روشی ساده و با کمک درخت دودویی دیتاها را compression میکند و حجم آنها تقریباً نصف میشود. قبل از ادامه مقاله پیشنهاد میکنیم از دیگر سورسهای ما دیدن کنید:
- بازی دوز در پایتون
- تشخیص چشم در پایتون
- تشخیص ماسک در پایتون
- تشخیص سن در پایتون
- Paint در پایتون
- دفترچه تلفن در پایتون
- بازی pacman در پایتون
سورس الگوریتم هافمن در پایتون
Compression یکی از تکنیکهایی است که امروزه در تمامی اطلاعات دیجیتال میتوان دید. انواع مختلف فرمت های compression تصاویر(png یا jpg و …) یا compression ویدئوها براحتی انجام میگیرد و ممکن ما با فرآیند آنها آشنا نباشیم. سورسی که امروز برای شما تهیه کردهایم الگوریتم هافمن است که یک نوع تکنیک compression محصوب میگردد. این تکنیک بسیار قدیمی میباشد و شما را با دنیای الگوریتم compression آشنا میکند.
روش کار سورس الگوریتم هافمن در پایتون
یک مجموعه از حروف یا کاراکتر به الگوریتم هافمن بدهید تا در خروجی این دیتاها برای شما هم compress شود و هم رمزنگاری، بله درسته، واژه رمزنگاری دقیقاً برای این الگوریتم بکار میرود. این الگوریتم ابتدا بر اساس تعداد تکرار کاراکترها، آنها را مرتب کرده و سپس یک درخت دودویی ایجاد میکند. با کمک درخت دودویی ایجاد گردیده، کاراکترها را رمز و compress میکند.
نحوه اجرا
بعد از تهیه سورس کد از سایت کدگیت، یک فایل پایتون با فرمت .py در اختیار شما قرار میگیرد. نام این فایل HuffmanCoding.py میباشد. این فایل اصلی برنامه بوده و با اجرای آن میتوانید الگوریتم هافمن را اجرا نمایید. پس از اجرای برنامه خروجی زیر را مشاهده خواهید کرد(ورودی برنامه AAAAAAABCCCCCCDDEEEEE بوده است):
AAAAAAABCCCCCCDDEEEEE
symbols: dict_keys([‘A’, ‘B’, ‘C’, ‘D’, ‘E’])
probabilities: dict_values([7, 1, 6, 2, 5])
symbols with codes {‘A’: ’00’, ‘C’: ’01’, ‘E’: ’10’, ‘D’: ‘110’, ‘B’: ‘111’}
Space usage before compression (in bits): 168
Space usage after compression (in bits): 45
Encoded output 000000000000001110101010101011101101010101010
Decoded Output AAAAAAABCCCCCCDDEEEEE
نقد و بررسیها
هنوز بررسیای ثبت نشده است.