Задача на языке Pascal. Выполнить через while Для функции F(x)= найти и вывести на экран все значения в интервале [-1,8,+2,1] (шаг +0,1) [-1,+1] (шаг +0,05)
Количество информации можно определить как -log2(p), где p - вероятность данного события. Оно измеряется в битах. Также можно использовать равносильное выражение log2(1/p) Вероятность взятия чёрного шара равна 10/20 = 0,5, белого - 4/20 = 0,2, жёлтого такая же - 0,2, красного - в 2 раза меньше - 0,1. Значит, если мы взяли чёрный шар, мы получили кол-во информации log2(1/0,5) = log2(2) = 1 бит, если белый, то log2(1/0,2) = log2(5) = 2,3219 бит если жёлтый, то столько же 2,3219 бит если красный, то log2(1/0,1) = log2(10) = 3,3219 бит
Чем меньше вероятность события, тем большее количество информации мы получаем, когда это событие наступает.
Тут все достаточно просто. Вычитать 4 из 2 смысла нет: получим -2 и что с ним дальше делать? Возведя -2 в квадрат, получим 4, но зачем 4 получать за две команды, когда можно сразу возвести исходную двойку в квадрат? А дальнейшее вычитание даст -6, квадрат -6 это 36, что никак не напоминает 64. Поэтому первая команда - это "возведи в квадрат" и мы получим 4.
Из 4 вычитать 4 смыла никакого: получим ноль и дальше что? В квадрат возводить его смысла нет, вычитать еще 4 - будет -4 - и зачем оно нам, когда у нас 4 и так есть? Так что остается опять только "возведи в квадрат". Получаем 16 и это была вторая команда.
Вот 16 в квадрат возводить уж точно смысла нет: зачем нам 256, когда идем к 64? Так что теперь - только "вычти 4". Получим 12.
С 12 такое же рассуждение, 144 - это много. Опять "вычти 4" и получили 8.
Отлично, последняя команда "возведи в квадрат" и мы получили 64!
Free Pascal
uses math;
var
x, y : double;
i : integer;
begin
i:=-18;
while i <= 21 do begin
x:=i/10;
if x<>0 then begin
y:=(sin(x)-sqrt(sqr(x)+7))/(power(x,3)-3*x);
Writeln('f[',x:1:1,']=',y:4:4);
end
else
Writeln('f[',x:1:1,']= решения нет, деление на 0');
inc(i);
end;
writeln();
i:=-100;
while i<=100 do begin
x:=i/100;
if x<>0 then begin
y:=(sin(x)-sqrt(sqr(x)+7))/(power(x,3)-3*x);
Writeln('f[',x:2:2,']=',y:4:4);
end
else
Writeln('f[',x:2:2,']= решения нет, деление на 0');
inc(i,5)
end;
end.