М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
chmy1998
chmy1998
28.11.2021 13:20 •  Информатика

Для кодирования некоторой последовательности, состоящей из букв а, б, в, г и д, решили использовать неравномерный двоичный код, позволяющий однозначно декодировать двоичную последовательность, появляющуюся на приёмной стороне канала связи. использовали код: а–111, б–110, в–100, г–0. укажите, каким кодовым словом может быть закодирована буква д. код должен удовлетворять свойству однозначного декодирования. если можно использовать более одного кодового слова, укажите кратчайшее из них.

👇
Ответ:
darinaggg
darinaggg
28.11.2021

ответ: Правильный ответ указан под номером 2.

Объяснение:

Для того, чтобы сообщение, записанное с неравномерного по длине кода, однозначно раскодировалось, требуется, чтобы никакой код не был началом другого (более длинного) кода. Рассмотрим варианты для буквы Д, начиная с самого короткого.

1) Д=1: код буквы Д является началом всех представленных кодов букв, поэтому этот вариант не подходит.

2) Д=0: код буквы Д не является началом другого кода, поэтому этот вариант подходит.

3) Д=01: код буквы Д не является началом другого кода, поэтому этот вариант подходит.

4) Д=10: код буквы Д является началом кодов букв В и Г, следовательно, этот вариант не подходит.

Таким образом, подходят два варианта: 0 и 01. 0 короче, чем 01.

4,4(41 оценок)
Открыть все ответы
Ответ:
vanyazoro
vanyazoro
28.11.2021
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    using namespace std;
    const int n = 10;  //количество элементов массива
    int Arr[n];

    //как-нибудь заполняем массив
    srand(time(0));
    int i;
    for (i = 0; i < n; ++i)
        Arr[i] = rand() % (n * n) + 1;

    //выведем его на экран
    for (i = 0; i < n; ++i)
        cout << Arr[i] << "   ";
    cout << endl;

    int p;
    for (i = 1; i < n; ++i)
    {
        p = i;
        while (p % 2 == 0)
            p /= 2;
        if (p == 1)
            cout << "Arr[" << i << "] = " << Arr[i] << endl;
    }
    cout << endl;
    return 0;
}
4,6(81 оценок)
Ответ:
temik25527
temik25527
28.11.2021
Для начала поясню что значат * и ? в маске. *-это последовательность символов, то есть любое количество символов. От 0 до бесконечности. Нам не важно что это за символы важен сам факт их существования или не существования. ?-это только один символ. Опять же, не важно какой, главное, чтобы он был там.
Первая маска: A?B*.*C?*. Её можно интерпретировать как A[любой символ]B[последовательность символов или ничего]. [последовательность символов или ничего]C[любой символ] [последовательность символов или ничего].
Под такие условия подходят 5 файлов, которые переходят в каталог friends:
ABBCBD.CDDBA
ACBDC.ACBA
AABBCCDD.DDCCD
ACBCACD.AABBCCDD
ADBCCAD.CADABC
Почему не подходят остальные? ABDCC.ACBDA – нет символа в начале между A и B. BABCDA.ABCD  - нет символа A в начале. AABACADA?CDBDADCB – нет точки.
Следующая маска: *B?C*.??*D*. На человеческий: [любой символ] B] [последовательность символов или ничего]C[любой символ]. [любой символ] [любой символ] [последовательность символов или ничего]D [последовательность символов или ничего]
Результат – 3 файла в папке family :
ABBCBD.CDDBA
AABBCCDD.DDCCD
ADBCCAD.CADABC
Остальные: ACBCACD.AABBCCDD – после единственной B сразу идёт C; ACBDC.ACBA – после точки нет D.
ответ:
ABBCBD.CDDBA
AABBCCDD.DDCCD
ADBCCAD.CADABC
4,7(61 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ