Написать программу , которая находит и выводит на печать все четырёхзначные числа abcd , для которых выполняется : a , b ,c ,d - разные цифры ab-cd=a+b+c+d
{Задачу можно решать несколькими Одним из возможных является перебор всех четырехзначных чисел и проверка для каждого из них выполнения условий. Попробуем сократить перебор, для этого преобразуем второе условие: 10а+b-(10c+d)=a+b+c+d; 9(a-c)=2(c+d); (a-c)/(c+d)=2/9 Проанализировав первое условие, получаем, что а=с+2, d=9-c, следовательно 0<=c<=7.}
program prim4; uses crt; var a,b,c,d: integer; begin clrscr; for c:=0 to 7 do begin a:=c+2; d;=9-c; for b:=0 to 9 do begin if (b<>c)and(b<>a)and(b<>d) then write(a,b,c,d); writeln end; end; readln; end.
{Таким образом, мы решили задачу, значительно сократив перебор.}
1. Количество информации вычисляется по формуле: 2i = N, где i - искомая величина, N - количество событий. Следовательно, 23 =8. ответ: 3 бита 2 Решение:
i-?,
Число возможных информационных сообщений о положении крестика равно количеству клеток, т. е. 8*8=64, поэтому
N=2i, 64=2i, 26=2i, i=6.
ответ: 6 бит. 3. 2i=128. Следовательно, i=7. ответ: 7 бит. 4. 5 бит 5. а) Всего шариков 25 + 25 +25 +25 = 100 Вероятности сообщений о цвете следующие: Рб = Рк = Рс = Рз = 25/100 =1/4 События не равновероятны, поэтому воспользуемся формулой Шеннона: N H = - ?Pi log 2Pi = - (4 • 1/4• log2 1/4) = - (4 • 1/4• (-2)) = 2 бита i=1 ответ: 2 бита б) Всего шариков 30 + 30 +30 +10 = 100 Вероятности сообщений о цвете следующие: Рб = Рк = Рс = 30/100 =0,3; Рз = 10/100 =0,1 События не равновероятны, поэтому воспользуемся формулой Шеннона: N H=- ? Pi log 2Pi = - (3 • 0,3• log2 0,3+ 0,1• log2 0,1) бит i=1 7 ) 1/512 Мб * 1024 = 2 Кб * 1024 = 2048 байт 2) К = 2048 символов, следовательно, i = 1 байт = 8 бит 3) 2i = N; 28 = 256 символов ответ: 256 символов вот так
Если требуется задавать однозначные вопросы (да/нет) и вы сделали опечатку и имеется в виду "минимальное":
В году 365-366 дней. = 512. 9 вопросов вполне достаточно, чтобы узнать точный день рождения человека, если в году от 257 до 512 дней.
Поясняю: Каждый вопрос, максимум, может уменьшать твою неопределенность в 2 раза. То есть, первый вопрос: в какой половине года у тебя день рождения? (убирает 6 лишних месяцев) след. Вопрос: в какой половине этой половины (четверти)?: определяет точный месяц. И так далее.
Если имелось в виду минимальное кол-во любых вопросов: 1. Когда у тебя день рождения?
10а+b-(10c+d)=a+b+c+d;
9(a-c)=2(c+d);
(a-c)/(c+d)=2/9
Проанализировав первое условие, получаем, что а=с+2, d=9-c, следовательно 0<=c<=7.}
program prim4;
uses crt;
var a,b,c,d: integer;
begin
clrscr;
for c:=0 to 7 do
begin
a:=c+2; d;=9-c;
for b:=0 to 9 do
begin
if (b<>c)and(b<>a)and(b<>d)
then
write(a,b,c,d);
writeln
end;
end;
readln;
end.
{Таким образом, мы решили задачу, значительно сократив перебор.}