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

По ка­на­лу связи пе­ре­да­ют­ся со­об­ще­ния, со­дер­жа­щие толь­ко семь букв: А, Б, В, Д, О, Р, Т. Для пе­ре­да­чи ис­поль­зу­ет­ся дво­ич­ный код, удо­вле­тво­ря­ю­щий усло­вию Фано. Ко­до­вые слова для не­ко­то­рых букв из­вест­ны: Б — 01, Д — 001, Р — 100. Какое наи­мень­шее ко­ли­че­ство дво­ич­ных зна­ков по­тре­бу­ет­ся для ко­ди­ро­ва­ния слова ВО­ДО­ВО­РОТ? Объясните , как решать, ибо я не понимаю какие цифры к буквам ставить ​

Показать ответ
Ответ:
Крути228
Крути228
04.12.2022 14:22
Печать документов и ФШ))про Макса вообще молчу имя ему даже другое дали. Школьные задания просто убивают.. По делу.Для работы в средах растровой, векторной и тем более в моделировании понадобится дискретная видео карта с объёмом памяти не менее 512 МБ, а для моделирования понадобится ещё и плюс поддержка шейдеров 3 версии и выше плюс ко всему этому ещё добавляется технология PhysiX, дабы макс не тормозило, хотя и не уверен, что с этими минимумами что-то там вообще будет нормально работать, ну да, дальше. Минимум 2 ГБ оперативной памяти, желательно DDR3. Процессор желательно не ниже характеристик intel core 2 duo или аналог на AMD, а то пентиумы уже не тащат. 180 ГБ HDD. Ну чем больше, тем лучше. Ну ещес: DVD,CD - дисководы Принтер, очень важный элемент, без нэго ничего не работает. Думаю все это укладывается в 25 тысяч.
0,0(0 оценок)
Ответ:
eroly12ramblerr2
eroly12ramblerr2
12.02.2023 06:01
/*задача дурацкая для n > 3, ибо не понятно, что делать:
1) разбить все столбцы на группы одинаковых столбцов и посчитать внутри них число пар. Затем суммировать.
2) разбить столбцы на группы одинаковых столбцов и суммировать количество элементов в каждой из групп, если оно больше 1. То есть найти количество столбцов, для которых среди других столбцов найдется хотя бы один идентичный ему
3) разбить столбцы на группы одинаковых столбцов и вывести количество элементов в каждой группе, если оно больше 1.
Для n=3 дело проще, потому что таких групп максимум одна, поэтому тут, по сути, неоднозначности не возникает (за исключением того, что в первом пункте...)
В общем, решил делать как во втором пункте. ответ в любом случае будет верным.*/
#include <iostream>
using namespace std;
int n, result = 0;
int **ar;//указатель на указатель для создания динамического двумерного массива
bool *Flag;//указатель на первый элемент массива флагов
void create(int n)//создание динамического массива
{
   ar = new int*[n];
   for (int i = 0; i < n; i++)
      ar[i] = new int[n];
   Flag = new bool[n];
   for (int i = 0; i < n; i++)
      Flag[i] = false;
}
void inp(int n) //ввод элементов массива
{
   cout << "Input rows of matrix:\n";
   for (int i = 0; i < n; i++)
   {
      cout << i + 1 << ": ";
      for (int j = 0; j < n; j++)
         cin >> ar[i][j];
   }
}
void outp(int n) //вывод элементов массива
{
   cout << "Elements of matrix:\n";
   for (int i = 0; i < n; i++)
   {
      for (int j = 0; j < n; j++)
         cout << ar[i][j] << " ";
      cout << endl;
   }
}
bool isEqual(int n, int j1, int j2)//проверка на равенство столбцов
{
   bool res = true;
   for (int i = 0; i < n; i++)
   {
      if (ar[i][j1] != ar[i][j2])
      {
         res = false;
         break;
      }
   }
   if (res)//если столбцы равны
    Flag[j2] = true; /*отмечаем столбец как просмотренный, чтобы в следующий раз его не сравнивать с другими столбцами*/
   return res;
}
void calculate(int n)//считаем количество совпадающих столбцов
{
   int k = 1;
   for (int j1 = 0; j1 < n; j1++)
    if (!Flag[j1])
    {
      k = 1;
      for (int j2 = j1 + 1; j2 < n; j2++)
       if (!Flag[j2] && isEqual(n, j1, j2))
          k++;
      if (k > 1)//имеется k одинаковых стобцов по типу столбца j1
         result += k;//плюсует к итоговому результату
    }
}
int main(){
   cout << "Input n: ";
   cin >> n;
   create(n);
   inp(n);//ввод массива
   outp(n);//вывод массива
   calculate(n);//расчет того, что требуется
   if (result > 0)/*количество столбцов, которые совпадают, по крайней мере, с одним из других столбцов*/
      cout << "The number of columns, coinciding with at least one other column, is " << result << endl;
   else //все столбцы разные
      cout << "There is no matching columns\n";
   return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота