В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
vaper4
vaper4
11.09.2021 05:58 •  Информатика

По каналу связи передаются сообщения, содержащие четыре буквы: А, Б, В, Г. Для передачи используется неравномерный двоичный код, допускающий однозначное кодирование. Для букв А, Б, В используются такие кодовые слова: А: 0, Б: 101, В: 110.
Укажите кратчайшее кодовое слово для буквы Г, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.

По каналу связи передаются сообщения, содержащие только 4 буквы: А, Т, О, М; для передачи используется двоичный код, допускающий однозначное декодирование. Для букв Т, О, М используются такие кодовые слова:
Т - 100, О - 0, М - 11.
Укажите такое кодовое слово для буквы А, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите тот, у которого меньшая длина.
Выберите один ответ.
01
101
1
0

Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, используется неравномерный двоичный код, позволяющий однозначно декодировать полученную двоичную последовательность. Вот этот код:
А - 10, Б - 11, В - 0, Г - 001, Д - 011.
Можно ли сократить для одной из букв длину кодового слова так, чтобы код по-прежнему можно было декодировать однозначно? Коды остальных букв меняться не должны. Выберите правильный вариант ответа.
Выберите один ответ.
для буквы Г - 00
это невозможно
для буквы Б - 1
для буквы Д - 01

Показать ответ
Ответ:
redvellk7
redvellk7
24.01.2022 03:21

===== PascalABC.NET =====

begin

 var СписокСлов := ReadlnString('Список слов через пробел:').ToWords;

 var ИсходныйСловарь := new Dictionary<char, integer>;

 var РабочийСловарь := new Dictionary<char, integer>;

 foreach var Символ in ReadlnString('Слово:') do

   ИсходныйСловарь[Символ] := ИсходныйСловарь.Get(Символ) + 1;

 var СтрокаВывода: string;

 foreach var Слово in СписокСлов do

 begin  

   foreach var Символ in Слово do

     РабочийСловарь[Символ] := РабочийСловарь.Get(Символ) + 1;

   var МожноПостроитьСлово := True;

   foreach var ЭлементРабочегоСловаря in РабочийСловарь do

   begin

     var Ключ := ЭлементРабочегоСловаря.Key;

     var ПределПовторовБуквы: integer;

     if ИсходныйСловарь.TryGetValue(Ключ, ПределПовторовБуквы) then

     begin  

       if ЭлементРабочегоСловаря.Value > ПределПовторовБуквы then

       begin

         МожноПостроитьСлово := False;

         break

       end

     end

     else

     begin

       МожноПостроитьСлово := False;

       break

     end  

   end;  

   if МожноПостроитьСлово then

   begin

     if СтрокаВывода <> '' then

       СтрокаВывода += ', ';

     СтрокаВывода += Слово

   end;  

   РабочийСловарь.Clear;

 end;

 Println(СтрокаВывода)

end.


Реализовать любом языке из списка: си/c++/c#/pascal/basic/javascript/fasm. задано для развлечения =)
0,0(0 оценок)
Ответ:
zhekabigboss
zhekabigboss
24.01.2022 03:21

Пояснение:

Если ввод осуществляется через файл, то он должен называть "Слова.txt" и находиться в одной директории с исполняемым файлом. Выбрать нужный вариант ввода можно просто введя цифру в перовом input.

Код:

# -*- coding: utf-8 -*-

format = int(input("Считать слова из файла (введите 1)\nВводить слова в консоль (введите 2)\nВвести слова в одну строку(введите 3)\nВыбор: "))

words = []

answer = []

if format == 1:

  f = open('Слова.txt', "r", encoding='utf-8')

  line = f.readline()

  while line:

      for i in line.split(", "):

          words.append(i)

      line = f.readline()

  f.close()

elif format == 2:

  n = int(input("Введите кол-во слов - "))

  for i in range(n):

      words.append(input("Вв. слол - "))

elif format == 3:

  n = input("Введите строку - ")

  for i in n.split(", "):

      words.append(i)

else:

  print("Неправильно введен номер ответа")

word = input("Введите поисковое слово - ")

for i in words:

  for j in list(word):

      if len(set(word).intersection(set(i))) == len(i):

          answer.append(i)

          break

print(", ".join(answer))

Текст для документа:

рыба, рак, щука, лебедь, карась, пескарь, баня, бубен, столб, баян, барыня

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота