Количество информации определяется величиной, показывающей насколько уменьшилось наше незнание в вопросе. 1. Если на светофоре горит желтый свет и мы не знаем, какой свет горел на нем до желтого, то возможны два исхода - зеленый свет и красный свет. Какой бы из них потом не загорелся, мы получим выбор 1 из 2 возможных. А этому соответствует один бит информации. 2. Если на светофоре горит красный свет и это "нормальный светофор", то мы ЗНАЕМ, что после красного света всегда следует желтый. Поэтому при зажигании желтого света наше незнание не меняется, следовательно, мы получаем ноль бит информации.
Светлана-Тигран
29.01.2020
//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками". var a, b, c: array [1..100] of longint; i, min, n, j, t: longint;
begin //Читаем количество элементов в нашем массиве. readln(n);
//Читаем массив. for i := 1 to n do read(a[i]);
//Заполняем первую "половинку". for i := 1 to n div 2 do b[i] := a[i];
//Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и //цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце. for i := n div 2 + 1 to n do c[i - n div 2] := a[i];
//Теперь отсортируем первую "половинку" методом выбора. Идея этого метода //основывается на том, что мы ищем минимальный среди неотсортированных элемент, //а затем просто swap-аем его с тем, который стоит сразу после отсортированных. for i := 1 to (n - 1) div 2 do begin min := i; for j := i + 1 to n div 2 do if b[min] > b[j] then min := j; if min <> i then begin t := b[i]; b[i] := b[min]; b[min] := t; end; end;
//Затем вторую точно также, только стоит обратить внимание на сравнения. //Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом //будет другим. for i := 1 to (n - 1) div 2 do begin min := i; for j := i + 1 to n div 2 do if c[min] < c[j] then min := j; if min <> i then begin t := c[i]; c[i] := c[min]; c[min] := t; end; end;
//А теперь просто по очереди выводим готовые "половинки", не забывая ставить //пробел после вывода каждого элемента. for i := 1 to n div 2 do write(b[i], ' '); for i := 1 to n - n div 2 do write(c[i], ' '); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Запишите число в свернутом виде а) 1*2( в степени 3) + 1 б) 1*3(в степени 8) + 2*3(в степени 5) + 1*3( в степени 2) + 2
А)девять
Б) 7161 плюс 7778 равно 16939