775645
20.02.2023 23:26

1.Дано десятичное число 91. Выберите ответ, который показывает, какие разряды у числа в двоичном представлении будут равны 1 (единице). Например у числа 5 - это 1 и 3 разряд. 1,2,4,5,7
1,3,4,6,7
1,4,5,7
1,2,5,7

2.Дано двоичное число 100100101, сколько к нему надо прибавить в десятичной системе, что бы получить число 400. Напишите только число.

3.Выберите все правильные ответы - какие действия можно совершать с информацией?

Получение информации
Понимание информации
Актуализация информации
Обработка информации
Передача информации
Хранение информации

Сколько раз потребуется разделить число 127 на 2, что бы получить двоичное число? Например, число 5, потребуется разделить на 2 - 2 раза (1 на 2 делить не требуется)
3
6
8
5

6.Сколько байт содержит фраза: Привет, мир! Введите только число.

7.Даны десятичные числа: 67, 89, 257, 29. Отметьте только те двоичные числа, которые соответствуют числам из данного набора.

100000001
10111
1000011
11101
1011001
1001101

8.Как различаются следующие виды информации по представления? Выберите все правильные ответы

Числовая
Вкусовая
Графическая и видео
Обонятельная
Текстовая
Звуковая

9.Сколько килобайт содержится 134 терабайтах? Введите только число.

10.Сколько значений может иметь 1 бит информации?

4
1
2
3

11.Сколько бит содержит полубайт? Напишите только число

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
jamashkinpavel
21.06.2021 22:27

class Cluster{

vector<POINT> scores;

public:

int curX , curY;//координаты текущего центроида

int lastX, lastY;//координаты предыдущего центоида

size_t Size(){ return scores.size();}//получаем размер вектора

inline void Add(POINT pt){ scores.push_back(pt); }//Добавляем пиксель к кластеру

void SetCenter();

void Clear();//Чистим вектор

static Cluster* Bind(int k, Cluster * clusarr, vector<POINT>& vpt);

static void InitialCenter(int k, Cluster * clusarr , vector<POINT>& vpt);;

static void Start(int k, Cluster * clusarr, vector<POINT>& vpt);

inline POINT& at(unsigned i){ return scores.at(i);}//Доступ к элементам вектора

};

Теперь нам надо реализовать метод которой будет распределять начальные координаты центроидов. Можно конечно сделать чего-нибудь по сложнее, но в нашем случае сойдет и равномерное распределение по вектору:

void Cluster::InitialCenter(int k, Cluster * clusarr, vector<POINT>& vpt){

int size = vpt.size();

int step = size/k;

int steper = 0;

for(int i = 0;i < k;i++,steper+=step){

clusarr[i].curX = vpt[steper].x;

clusarr[i].curY = vpt[steper].y;

}

}

Также нужно написать метод, который будет ответственный за нахождение новых координат центроида в соответствии с пунктом 5.Координаты нового центроида можно найти описав вокруг пикселей кластера прямоугольник и тогда центроидом будет пересечение его диагоналей.

void Cluster::SetCenter(){

int sumX = 0, sumY = 0;

int i = 0;

int size = Size();

for(; i<size;sumX+=scores[i].x,i++);//the centers of mass by x

i = 0;

for(; i<size;sumY+=scores[i].y, i++);//the centers of mass by y

lastX = curX;

lastY = curY;

curX = sumX/size;

curY = sumY/size;

}

void Cluster::Clear(){

scores.clear();

}

И теперь только остался сделать простенький метод самого «привязывания» пикселей к определенному кластеру по принципу сравнения модулей отрезков:

Cluster * Cluster::Bind(int k, Cluster * clusarr, vector<POINT>& vpt){

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

clusarr[j].Clear();// Чистим кластер перед использованием

int size = vpt.size();

for(int i = 0; i < size; i++){// Запускаем цикл по всем пикселям множества

int min = sqrt(

pow((float)clusarr[0].curX-vpt[i].x,2)+pow((float)clusarr[0].curY-vpt[i].y,2)

);

Cluster * cl = &clusarr[0];

for(int j = 1; j < k; j++){

int tmp = sqrt(

pow((float)clusarr[j].curX-vpt[i].x,2)+pow((float)clusarr[j].curY-vpt[i].y,2)

);

if(min > tmp){ min = tmp; cl = &clusarr[j];}// Ищем близлежащий кластер

}

cl->Add(vpt[i]);// Добавляем в близ лежащий кластер текущий пиксель

}

return clusarr;

}

И наконец главный цикл:

void Cluster::Start(int k, Cluster * clusarr, vector<POINT>& vpt){

Cluster::InitialCenter(k,clusarr,vpt);

for(;;){//Запускаем основной цикл

int chk = 0;

Cluster::Bind(k,clusarr,vpt);//Связываем точки с кластерами

for(int j = 0; j < k;j++)//Высчитываем новые координаты центроидов

clusarr[j].SetCenter();

for(int p = 0; p<k;p++)//Проверяем не совпадают ли они с предыдущими цент-ми

if(clusarr[p].curX == clusarr[p].lastX && clusarr[p].curY == clusarr[p].lastY)

chk++;

if(chk == k) return;//Если да выходим с цикла

}

}

И что же из этого всего следует?

Вернемся к картинке с машинами, кластеризуя движущиеся объекты возникает проблема при использовании алгоритма к-средних, а именно мы не знаем сколько в данной сцене будет движущихся объектов, хотя можем приблизительно предугадать. Например кадр с машинами, на той сцене разумным будет предположить, что ну максимум там будет машин 10. Таким образом задавая на вход программе k = 10 и обведя точки 10 кластеров зелеными прямоугольниками, мы получим примерно следующую картину:

Теперь банально объеденив пересекающиеся прямоугольники, мы находим результирующие кластеры, обведя которые прямоугольником мы получим изображение преведенное в начале поста.Все просто.

Теги:

c++

кластерный анализ

к-средних

Хабы:

C++

Обработка изображений

0,0(0 оценок)
Ответ:
Роза005
29.03.2021 23:35

Выше мы рассмотрели примеры двоичного кодирования чисел, букв, цвета. Однако, поскольку любая информация, представленная в компьютере, имеет двоичную природу, очень часто возникает необходимость сопоставить двоичные коды и другим видам информации.

При кодировании информация записывается с символов. Например, обычный текст – информация, закодированная с набора символов, например русского алфавита. Набор символов, используемый для кодирования данных, называется алфавитом. Число символов в алфавите называется мощностью алфавита. Последовательность символов в алфавите называется словом.

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