VladimirovnaSimonov
?>

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

Информатика

Ответы

oloinics

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

Объяснение:

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

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

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

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

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

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

Janaz842060
#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;
}
Yurevich1291
Для начала поясню что значат * и ? в маске. *-это последовательность символов, то есть любое количество символов. От 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

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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