2019-gate-computer-science-and-it-practice.pdf/Q17-alg4 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: « == Вопрос: Q17-alg4-31d68c == <blockquote> Вопрос из «Algorithms Test 4» где-то со страницы 238. Тут вставьте пер…»)
 
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
 
== Вопрос: Q17-alg4-31d68c ==
 
== Вопрос: Q17-alg4-31d68c ==
  
<blockquote>
 
Вопрос из «Algorithms Test 4» где-то со страницы 238.
 
  
Тут вставьте перевод вопроса.
+
Предположим, что символы ''a'',''b'',''c'',''d'',''e'' встречаются с частотами <m>\frac{1}{36}, \frac{1}{36}, \frac{1}{12}, \frac{1}{9}, \frac{5}{36}</m>.  
Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 возможности разметки],  
+
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz (реально оценю, полезный навык).
+
Если код — теги «code-pascal», «code-c» или «code-python» (не «source lang»).
+
  
В IT вообще не принято писать романы, всегда старайтесь писать структурированные (списками-абзацами тексты). Списки в MediaWiki — это просто «*». Не забывайте о них.
+
Какие получатся [https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A5%D0%B0%D1%84%D1%84%D0%BC%D0%B0%D0%BD%D0%B0 коды Хаффмана] для букв ''a'',''b'',''c'' соответственно?
Преформатированный моноширинный текст — просто отступ.
+
  
Старайтесь нетривиальные понятия, особенно незнакомые вам, найти ссылку на википедию и вставить (нейросети лажают!).
+
=== Ответы ===
Это важно, чтобы найти корректный перевод (то, что в википедии, или на худой конец — точно массово гуглится).
+
* 1101, 111, 1101
 +
* Правильный ответ: 1100, 1101, 111
 +
* 1100, 10, 0
 +
* 1101, 1100, 111
  
Потом конечно сотрите эти инструкции, которые тут курсивом или в блоке цитирования.
+
=== Объяснение ===
</blockquote>
+
Необходимо построить дерево Хаффмана и получить коды Хаффмана.
  
=== Ответы ===
+
* Отсортируем по частотам: <m>\{a: \frac{1}{36}, b: \frac{1}{36}, c: \frac{3}{36}, d: \frac{4}{36}, e: \frac{5}{36}\}</m>
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
* Собираем символы с меньшими частотами, узел <m>\{a, b\}</m> с частотой  <m>\frac{1}{36} + \frac{1}{36} = \frac{2}{36} = \frac{1}{18}</m>
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
+
** Список: <m>\{\{a, b\}: \frac{2}{36}, c: \frac{3}{36}, d: \frac{4}{36}, e: \frac{5}{36}\}</m>
 +
* Собираем символы с меньшими частотами, узел <m>\{\{a, b\}, c\}</m> с частотой <m>\frac{2}{36} + \frac{3}{36} = \frac{5}{36}</m>
 +
** Список: <m>\{\{\{a, b\}, c\}: \frac{5}{36}, d: \frac{4}{36}, e: \frac{5}{36}\}</m>
 +
* Собираем символы с меньшими частотами, узел <m>\{d, \{\{a, b\}, c\}\}</m> с частотой <m>\frac{4}{36} + \frac{5}{36} = \frac{9}{36} = \frac{1}{4}</m>
 +
** Список: <m>\{\{d, \{\{a, b\}, c\}\}: \frac{9}{36}, e: \frac{5}{36}\}</m>
 +
* Собираем остатки, меньшие частоты налево, узел <m>\{e, \{d, \{\{a, b\}, c\}\}\}</m> с частотой <m>\frac{5}{36} + \frac{9}{36} = \frac{14}{36} = \frac{7}{18}</m>
  
* Правильный ответ: тут реально правильный ответ
+
        Root
* неправильный ответ
+
      /    \
* еще какой-то неправильный ответ
+
      e      {d, {{a, b}, c}}
* еще какой-то неправильный ответ
+
            /    \
* еще какой-то неправильный ответ
+
            d      {{a, b}, c}
 +
                  /    \
 +
                {a, b}  c
 +
              /    \
 +
              a      b
  
<i>Если ответы длинные, многострочные, или там графы, используйте
 
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
 
Но такое очень редко встречается, например [[2011-gre-cs-practice-book.pdf/Q05]]. </i>
 
  
 +
Осталось назначить коды.
 +
;a:
 +
* Right → Right → Left → Left
 +
* 1100
  
=== Объяснение ===
+
;b:
<i>Сначала заполните номер страницы с этим вопросом
+
* Right → Right → Left → Right
{{cstest-source|2019-gate-computer-science-and-it-practice.pdf|тут-номер-страницы-с-вопросом-17|17}}
+
* 1101
 
+
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
  
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
;c:
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],
+
* Right → Right → Right
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
* 111
  
</i>
 
  
{{question-ok|}}
+
{{cstest-source|2019-gate-computer-science-and-it-practice.pdf|238|17}}
  
{{reserve-task|[[Участник:StasFomin|StasFomin]] 10:34, 25 декабря 2024 (UTC)}}
+
{{question-ok|[[Участник:StasFomin|StasFomin]] 13:48, 25 декабря 2024 (UTC)}}
  
[[Category:Надо не забыть выбрать тему]]
+
[[Категория:Теория кодирования]]

Текущая версия на 14:28, 25 декабря 2024

Вопрос: Q17-alg4-31d68c

Предположим, что символы a,b,c,d,e встречаются с частотами .

Какие получатся коды Хаффмана для букв a,b,c соответственно?

Ответы

  • 1101, 111, 1101
  • Правильный ответ: 1100, 1101, 111
  • 1100, 10, 0
  • 1101, 1100, 111

Объяснение

Необходимо построить дерево Хаффмана и получить коды Хаффмана.

  • Отсортируем по частотам:
  • Собираем символы с меньшими частотами, узел с частотой
    • Список:
  • Собираем символы с меньшими частотами, узел с частотой
    • Список:
  • Собираем символы с меньшими частотами, узел с частотой
    • Список:
  • Собираем остатки, меньшие частоты налево, узел с частотой
       Root
      /    \
     e      {d, {{a, b}, c}}
            /    \
           d      {{a, b}, c}
                 /    \
               {a, b}  c
              /    \
             a      b


Осталось назначить коды.

a
  • Right → Right → Left → Left
  • 1100
b
  • Right → Right → Left → Right
  • 1101
c
  • Right → Right → Right
  • 111


Исходники — вопрос 17 на 238 странице книги «2019-gate-computer-science-and-it-practice.pdf»