Егоркина
?>

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

Информатика

Ответы

Varagyan1728
Всего - 779 спортсменов
спортсменов

Определим минимальную кодировку.
Это делается так: 2^{i} i - это кол-во бит.
Например 2^{2} = 4 тут i = 2, этого хватило бы для 3 спортсменов.
2^{9} = 512 то есть 9 бит хватило бы для 511 спортсменов. А нам надо 779. Значит увеличиваем кол-во бит
2^{10} = 1024 Этого хватило бы для 1023 спортсменов. Нам хватает.

Значит минимальное кол-во бит для кодирования - 10
У нас а каждая запись кодируется 10 битами, значит умножив 280 на 10, мы найдём объём всех записей.
280 * 10 = 2 800 бит
ответ: 2 800 бит или 350 байт.
yliana
1 спортсмен = 10 бит, т.к. 512<779<1024 => 2^9<779<2^10

280*10 = 2800 бит / 8 = 350 байт
sidorov9
1. Записывает введенное пользователем значение в переменную dr
2. integer
3. sqrt(число)
4. var
5. 16
6. 2
7.
function x(a,b,c:integer);
begin
x:=-b+sqr(b)-sqr(4*a*c)*a;
end;
8. 11
9. end.
10. d)
11.
var a,b,c:integer;
result:real;
begin
readln(a,b,c);
result:=(a*b*c)/3;
writeln(result:0:3);
end.
12. real
13. оператор присвоения
14. Присвоить переменной F значение 125
15. write(B); или writeln(B);
16. корень из суммы квадрата х и ста делить на разность а и b умноженной на с
17. с)
18. Нет картинки как образован массив, значит сами решите
19. d)
20. c)
21. c)
tagirova1

Объяснение:

Эта задача сводится к задаче поиска пути на графе пространства состояний.

Состояние - положение черепашки на поле - (x, y).

Граф пространства состояний состоит из таких вершин-состояний, их количество N * M.

Переходов между вершинами всего два: R и D.

Здесь можно заметить, что прийти к одним и тем же вершинам мы можем разными путями. Например, путь из (0,0) в (1,1) можно расписать и как RD ((0,0) -> (0,1) -> (1,1)), и как DR ((0,0) -> (1,0) -> (1,1)), но это два разных маршрута.

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

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

Итак, для каждого состояния у нас есть два правила перехода. Рассчитывая максимальную стоимость маршрута для состояния (x,y) мы следуем алгоритму:

Если можем идти вправо, рассчитываем параметры для этого маршрутаЕсли можем идти вниз, рассчитываем параметры для этого маршрутаВыбираем между путями, если можем идти, или стоим, если уже не можемК выбранному варианту добавляем параметры текущего состояния

Если такой алгоритм применить к состоянию (0,0), то дойдем до (N, M) и получим максимальную цену и маршрут.

Код:

import re

from typing import List

cache = {}

def calculate_max_way_price(x: int, y: int, prices: List[List[int]], m:int, n:int):

   if (x, y) in cache:

       return cache[(x, y)]

   direction = ''

   cost = prices[y][x]

   x_cost, y_cost = -1, -1

   x_way, y_way = '', ''

   if x < m - 1:

       x_cost, x_way = calculate_max_way_price(x + 1, y, prices, m, n)

   if y < n - 1:

       y_cost, y_way = calculate_max_way_price(x, y + 1, prices, m, n)

   if not (x_cost < 0 and y_cost < 0):

       if x_cost > y_cost:

           cost += x_cost

           direction = 'R' + x_way

       else:

           cost += y_cost

           direction = 'D' + y_way

   cache[(x, y)] = (cost, direction)

   return cost, direction

MNtext = input('Enter N M: ')

MN = [int(x) for x in re.findall(r'\d+', MNtext)]

if len(MN) != 2:

   print("Input data error! It is not M and N")

   exit(-1)

N, M = MN[0], MN[1]

MAX_STEP_PRICE = 100

data = input('Enter all numbers separated by spaces. You must type ' + str(M*N) + ' elements:')

data = [int(x) for x in re.findall(r'\d+', data)]

if len(data) != N * M:

   print("Input data error! Too few/many numbers")

   exit(-2)

prices = []

for j in range(N):

   prices.append(data[M*j:M*(j+1)])

print(calculate_max_way_price(0, 0, prices, M, N))

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

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

Ввелокроссе участвуют 779 спортсменов. специальное устройство регистрирует прохождение каждым из учеников промежуточного финиша, записывая его номер с использованием минимально возможного количества бит, одинакового для каждого спортсмена. каков информационный объем сообщения, записанного устройством после того как промежуточный финиш вылосипедистов?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Anatolevich1506
Николаевич1033
bellenru
Koshovkina1721
Pavel_Olegovna1601
rynaodal
Станиславович ыфвыв
dinadumno2114
scorpion21c
arnika-ooo1
TatyanaVladimirovich
Vik1744184
Nikolaevna1623
tanu0618
Екатерина655