AlecsandrPonkratov77
01.12.2021 02:12

Доклад/сообщение на тему: "Двоичное кодирование".
надо ​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
bohdan4ever
03.08.2022 07:54

#include "stdafx.h"

#include "iostream"

#include "vector"

#include "cmath"

#include "locale.h"

using namespace std;

int main()

{

   // Считываем размер вводимой матрицы

   setlocale(LC_ALL, "rus");

   int size;

   cout << "Введите размер вводимой матрицы: ";

   cin >> size;

   cout << endl;

   

   // Будем хранить матрицу в векторе, состоящем из

   // векторов вещественных чисел

   vector <vector <long double> > matrix;

   

   // Матрица будет иметь размер (size) x (size + 1),

   // c учетом столбца свободных членов    

   matrix.resize (size);

   cout << "Введите элементы матрицы " << size << "x" << size+1 <<":" <<endl;

   for (int i = 0; i < size; i++)

   {

       matrix[i].resize (size + 1);

       for (int j = 0; j < size + 1; j++)

       {

           cin >> matrix[i][j];

       }

   }

   // Считываем необходимую точность решения

   long double eps;

   cout << endl;

   cout << "Введите точность решения: ";

   cin >> eps;

   // Введем вектор значений неизвестных на предыдущей итерации,

   // размер которого равен числу строк в матрице, т.е. size,

   // причем согласно методу изначально заполняем его нулями

   vector <long double> previousVariableValues (size, 0.0);

   // Будем выполнять итерационный процесс до тех пор,

   // пока не будет достигнута необходимая точность    

   while (true)

   {

       // Введем вектор значений неизвестных на текущем шаге      

       vector <long double> currentVariableValues (size);

       // Посчитаем значения неизвестных на текущей итерации

       // в соответствии с теоретическими формулами

       for (int i = 0; i < size; i++)

       {

           // Инициализируем i-ую неизвестную значением

           // свободного члена i-ой строки матрицы

           currentVariableValues[i] = matrix[i][size];

           // Вычитаем сумму по всем отличным от i-ой неизвестным

           for (int j = 0; j < size; j++)

           {

               if (i != j)

               {

                   currentVariableValues[i] -= matrix[i][j] * previousVariableValues[j];

               }

           }

           // Делим на коэффициент при i-ой неизвестной

           currentVariableValues[i] /= matrix[i][i];

       }

       // Посчитаем текущую погрешность относительно предыдущей итерации

       long double error = 0.0;

       

       for (int i = 0; i < size; i++)

       {

           error += abs (currentVariableValues[i] - previousVariableValues[i]);

       }

       // Если необходимая точность достигнута, то завершаем процесс

       if (error < eps)

       {

           break;

       }

       // Переходим к следующей итерации, так

       // что текущие значения неизвестных

       // становятся значениями на предыдущей итерации

       previousVariableValues = currentVariableValues;

   }

   // Выводим найденные значения неизвестных с 8 знаками точности

   for (int i = 0; i < size; i++)

   {

       printf ("%.8llf ", previousVariableValues[i]);

   }

   cout << endl;

   system("pause");

   return 0;  

}

Объяснение:

0,0(0 оценок)
Ответ:
zadorozhnyakdap0derm
24.05.2021 13:18
1 1 1 1 1 1 1 = 1*64 + 1*32 + 1*16 + 1*8 + 1*4 + 1*2 + 1*1 = 80 + 47 = 127(начиная с конца пишу над цифрами 0 1 2 3 4 5 6, это будут степени двойки, которые умножаются на эти самые единицы и складываются)

1 0 1 0 1 0 1 0 = 1*128 + 0*64 + 1*32 + 0*16 + 1*8 + 0*4 + 1*2 + 0*1 = 128+32+8+2=130+40 = 170 (не обращайте внимания на корявый подсчет, мне так удобнее)

10101010 / 2 = 5050505 (в остатке 0)
5050505 / 2 = 2525252 (в остатке 1)
2525252 / 2 = 1262626 (в остатке 0)
1262626 / 2 = 631313 (в остатке 0)
631313/ 2 = 315656 (в остатке 1)
315656 / 2 = 157828(в остатке 0)
157828 / 2 = 78914 (в остатке 0)
78914 / 2 = 39457 (в остатке 0)
39457 / 2 = 19728 (в остатке 1)
19728 / 2 = 9864 (в остатке 0)
9864 / 2 = 4932 ( в остатке 0)
4932 / 2 = 2466 ( в остатке 0)
2466 / 2 = 1233 (в остатке 0)
1233 / 2 = 616 (в остатке 1)
616 / 2 = 308 ( в остатке 0)
308 / 2 = 154 (в остатке 0)
154 / 2 = 77 (в остатке 0)
77 / 2 = 38 (в остатке 1)
38 / 2 = 19 (в остатке 0)
19 / 2 = 9 (в остатке 1)
9 / 2 = 4(в остатке 1)
4 / 2 = 2(в остатке 0)
2 / 2 = 1(в остатке 0)
И снизу вверх записываем число

100 110 100 010 000 100 010 010

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