Persian Türkçe English

چالش رمزگشایی کد باینری

هدف چالش

در این چالش، شما باید یک رشته باینری (متشکل از 0 و 1) را به متن اصلی آن رمزگشایی کنید. برای این کار، باید کدهای باینری را بر اساس جدول ارائه‌شده به کاراکترها یا کلمات مربوطه تبدیل کنید.

نکات کلیدی:

  • رمزگذاری بدون پیشوند: هیچ کدی پیشوند کد دیگری نیست، که باعث می‌شود رمزگشایی بدون ابهام انجام شود.
  • کدهای کوتاه‌تر برای حروف پرکاربرد: حروف پرکاربرد در انگلیسی مانند E, T, A, O, I, N کدهای باینری کوتاه‌تری دارند.
101010 111 001 010 111 000 111...

جدول کدگذاری

در جدول زیر، هر حرف الفبای انگلیسی با یک کد باینری منحصر به فرد نمایش داده شده است:

حرف کد باینری حرف کد باینری حرف کد باینری
A 1101 J 010000 S 01101
B 10110 K 10001 T 0101
C 0001 L 0111 U 10111
D 0110 M 11000 V 000001
E 111 N 1001 W 10101
F 00101 O 0011 X 001001
G 01001 P 11101 Y 0100001
H 00001 Q 11001 Z 11100
I 1010 R 10000 SPACE 00000

رمزگشایی دنباله باینری

برنامه زیر به شما کمک می‌کند تا دنباله‌های باینری را بر اساس جدول کدگذاری فوق رمزگشایی کنید:

نتیجه رمزگشایی:

نتیجه اینجا نمایش داده خواهد شد...

نمونه‌های کد باینری

در زیر دو نمونه کد باینری ارائه شده است که می‌توانید آن‌ها را کپی کرده و در بخش رمزگشایی وارد کنید:

نمونه اول:

            10101 111 0111 0001 0011 11000 111 0101 0011 0101 00001 111 0001 
            0011 11000 11101 111 0101 1010 0101 1010 0011 1001 0011 1001 111 
            1010 0110 111 1101 0011 1001 111 1010 0110 111 1101 0011 1001 
            10101 0011 10000 0111 0110 0101 10111 10000 10001 111 0100001
                    

نمونه دوم:

            10101 111 0111 0001 0011 11000 111 00000 0101 0011 00000 0101 00001 111 00000 0001 
            0011 11000 11101 111 0101 1010 0101 1010 0011 1001 00000 0011 1001 111 00000 
            1010 0110 111 1101 00000 0011 1001 111 00000 
            10101 0011 10000 0111 0110 00000 0101 10111 10000 10001 111 0100001
                    

درباره پیاده‌سازی

این برنامه از یک الگوریتم رمزگشایی استفاده می‌کند که به صورت زیر عمل می‌کند:

  1. جدول کدگذاری را به صورت یک ساختار داده در JavaScript نگهداری می‌کنیم.
  2. دنباله باینری را از ابتدا می‌خوانیم و با بررسی کاراکترها، سعی می‌کنیم طولانی‌ترین توالی ممکن را که با یکی از کدها مطابقت دارد، شناسایی کنیم.
  3. پس از شناسایی یک کد، حرف معادل آن را به رشته نتیجه اضافه می‌کنیم.
  4. این فرآیند را تا زمانی که تمام دنباله باینری پردازش شود، ادامه می‌دهیم.