green121
04.12.2021 01:51

Валя шифрует русские слова, записывая вместо каждой буквы её код (см. таблицу). Даны кодовые цепочки: 3172 2312 1629 3017. Выберите шифровку, которая расшифровывается наибольшим числом и расшифруйте её всеми возможными Выберите самый длинный вариант и запишите его в ответе.


Валя шифрует русские слова, записывая вместо каждой буквы её код (см. таблицу). Даны кодовые цепочки

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Adelina174
15.09.2022 22:04
5) Проверим предлагаемые варианты ответов.
- Г = 1: Явно однозначности нет: 101 можно расшифровать как В или ГАГ.
Итак, одним битом букву Г закодировать нельзя, попробуем двумя.
- Г = 11: можно! Получится префиксный код (потому расшифровка будет однозначной).
- Г = 01. Однозначности нет: 0101 расшифровывается как ГГ или АВ.
Дальше проверять бессмысленно: 010 состоит из 3 битов.
ответ. 2) 11.

7) Опять проверяем.
- Г = 11. Нет однозначности: 11 может быть расшифровано как ББ или Г.
- Г = 000: подходит, т.к. получается префиксный код.
Остальные варианты не короче этого.
ответ. 2) 000.



Для справки. Префиксным кодом называется такой кодировки, при котором код никакого символа не начинается кодом другого символа (т.е. если, например, код символа 'a' есть 01001, то все остальные коды символов не могут начинаться на 01001...). Еще бывают постфиксные коды (когда коды не могут оканчиваться кодами других символов). Префиксные и постфиксные коды можно расшифровать однозначно (однако бывают коды, не являющиеся постфиксными или префиксными, но при этом допускающие однозначную расшифровку)
0,0(0 оценок)
Ответ:
мопс22
15.10.2021 20:38

include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <string.h>

const unsigned M=5;

 

void init_array(int A[][M], unsigned n);

void print_of_array(int A[][M], unsigned n);

void swap (int *pa, int *pb);

void changing_of_array(int A[][M], unsigned n);

int main(){

   const unsigned N=5;

       int A[N][M];

       init_array(A,N);

       print_of_array(A,N);

       printf("\n");

               printf("\n");

       changing_of_array(A,N);

       print_of_array(A,N);

       getchar();

       return 0;

   

}

 

void init_array(int A[][M], unsigned n){

   for (unsigned i=0; i<n; i++)

   for (unsigned j=0; j<M;j++)

   A[i][j]=rand()%100;

}

void print_of_array(int A[][M], unsigned n){

   for (unsigned i=0; i<n; i++){

   for (unsigned j=0; j<M;j++)

       printf("%5d", A[i][j]);

   printf("\n");}

}

void swap(int *pa, int *pb){

   int temp=*pa;

   *pa=*pb;

   *pb=temp;

   return;

                                     }

void changing_of_array(int A[][M], unsigned n)  {

   unsigned l=1;

   for (unsigned i=1; i<n; i++)              {

   for (unsigned j=M-1; j+1>0; j--){

       if ((j-l)<0) break;

   swap(&A[i][j],&A[i][j-l]);            }

l++;    

                                                            }

   

                                                                 }

Объяснение:

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