Носов Тоноян
?>

Загадано число из промежутка от 321 до 1344. какое количество информации несёт сообщение об угадывании числа из этого промежутка? желательно подробней.

Информатика

Ответы

Voronov434
Формула хартли гласит, что если всевозможных вариантов n штук, то сообщение о одном варианте несет  информацию в    бит здесь в диапазоне [321,  1344] находится (1344-321+1)=1024 чисел, значит объем  информации о угадывании одного числа равен: бит
nmakarchuk

я, в основном, программы на с++ пишу, но из школы про паскаль кое-что помню (в смысле, попытаюсь написать на паскале).

program a1;

var a,b,c,i: integer;

begin

write('enter the a: ');

read(a);

writeln('enter the b: ');

read(b);

с: =0;

for i: =1 to a do

        c: =c+b;

writeln('a*b=',c: 5: 0);

end.

объясняю (начинаю сразу с цикла for): что значит произведение двух натуральных чисел а и b - это означает, сложить b с самим собой по а раз (можно и наоборот). например, a=5, b=3. переменную с=0 будем складывать с b.

i=1          c=5+0;

i=2          c=5+5;

i=3          c=10+5;     //c=15

вот и есть ответ: 5*3=15.

Dushko
Метод монте-карло получил распространение с появлением эвм. его преимущество в том, что он легко программируется и для сложных зачастую является единственным приемлемом способом решения. суть метода: составляется некоторая целевая функция и затем отыскивается её минимум или максимум. параметры функции при датчика случайных чисел. пример. найти минимум функции p(x,y,z) при заданных ограничениях. как видно из условия, имеется пять ограничений. конечно, в данном случае можно решить методом простого перебора параметров с каким-то шагом, сначала найти примерное положение минимума (или минимумов, если их несколько), а потом уменьшить шаг и повторить поиск, но методом монте-карло решается намного изящнее. function f(x, y, z: real): real; begin   f : = sin(2 * x) + cos(3 * y) + sqr(sin(4 * z + 1)) end; var   x, y, z, p, x1, y1, z1, p1: real;   i, n: longint; begin   write('введите число проб: ');   readln(n);   randomize;   p1 : = 1e20;   for i : = 1 to n do   begin       repeat           x : = 4 * random - 2;           y : = 3 * random - 1.5;           z : = 10 * random - 5       until (x> 0) and (x*z> =0);       p : = f(x, y, z);       if p1 > p then begin           x1 : = x; y1 : = y; z1 : = z; p1 : = p       end;   end;   writeln('n=', n: 8, ' ', x1: 0: 4, ' ', y1: 0: 4, ' ', z1: 0: 4, ' минимум=', p1) end. тестовое решение (при разных количествах проб): введите число проб: 1000 n=      1000 1.9111 -1.0660 0.5749 минимум=-1.6029403376222 n=    10000 1.9931 -1.0176 2.0465 минимум=-1.68773775014315 введите число проб: 100000 n=  100000 1.9985 -1.0401 0.5191 минимум=-1.75037309941284 введите число проб: 1000000 n= 1000000 1.9997 1.0378 3.6868 минимум=-1.7544874244815 введите число проб: 10000000 n=10000000 1.9995 1.0471 2.1027 минимум=-1.75595433108399 вычисление даже для 10 миллионов проб выполняется около 5 секунд, так что быстродействие метода прекрасное анализ результатов показывает, что наша целевая функция имеет значительное количество экстремумов, что связано с наличием в ней трех периодических функций. значение аргумента х практически определено (оно меняется незначительно), его можно зафиксировать и продолжить поиск уже для функции двух переменных, границы которых также следует сузить в районе полученных значений. посмотрим, как будут отыскиваться экстремумы с теми же ограничениями на те же параметры, если целевую функцию заменить на непериодическую: в программе при этом надо будет только изменить формулу целевой функции: f : = 3.5*sqr(x)+2.4*sqr(y-1)-6.18*y*z тестовое решение: введите число проб: 1000 n=      1000 0.4468 1.3516 4.9403 минимум=-40.2712691657245 n=    10000 0.1716 1.4677 4.8246 минимум=-43.1319690531051 введите число проб: 100000 n=  100000 0.0283 1.4920 4.9365 минимум=-44.9334596263254 введите число проб: 1000000 n= 1000000 0.0320 1.4891 4.9963 минимум=-45.3999805516411 введите число проб: 10000000 n=10000000 0.1106 1.4998 4.9993 минимум=-45.6964653852599 хорошо видно, что параметры y и z уже после 10 тысяч проб практически не меняются, а параметр х меняется в значительных пределах. дальнейший путь решения - зафиксировать с некоторой точностью найденные значения параметров и продолжить поиск значения уже одной переменной в области [0; 0.15], или также зафиксировать найденное значение функции и решить полученное уравнение относительно х.

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

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

Загадано число из промежутка от 321 до 1344. какое количество информации несёт сообщение об угадывании числа из этого промежутка? желательно подробней.
Ваше имя (никнейм)*
Email*
Комментарий*

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

bezzfamilny631
Artyukhin545
layna1241383
marusyamr
cometa94558
StudioArtNails
olgabylova6223
cvetyzelen283
sergeevna
levickaalubov5
fixer2006
kristina
aifbon
tatyanaryzhkova
shef3009