moskvichkabakery56
?>

Ниже записан алгоритм. укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 4, а потом 0. var x, a, b, c: integer; begin readln(x); a: = 0; b: = 0; while x > 0 do begin c: = x mod 2; if c = 0 then a: = a + 1 else b: = b + 1; x: = x div 6; end; writeln(a); writeln(b); end.

Информатика

Ответы

goodsled
Тем не менее, несмотря на ту безалаберность, с которой вы скинули задачу, я все же захотел ее решить.
По условию мы видим, что а - 4, б - 0 ( в конце задачи )
Такое может произойти из условия, что на вход поступит четное число, которое сможет поделится на 6 4 раза, ни разу не обернувшись в нечетное, ибо тогда станет б>0, что не есть верно.
6^4 = 1296, именно это и есть ответ. ответ: 1296
chavagorin

Самая оптимальная стратегия угадывания - дихотомия, то есть деление отрезка пополам и задавание вопроса больше? (или меньше?)

Например, загадано 50

Последовательность

32   64/2            больше

48   (32+64)/2   больше

56   (48+64)/2   меньше

52   (48+56)/2   меньше

50   (48+52)/2   попал

 

Теперь о задаче. Вопрос очень некорректный, если бы он звучал, как сколько попыток нужно сделать, чтобы угадать? , то решение простое

64 = 2^6, поэтому нужно 6 попыток 6 = 110b, значит 3 бит достаточно, чтобы в них разместить это количество попыток.

НО в задаче вопрос-то другой! Потому что в процессе отгадывания на каждом шаге нужно знать 1. Концы отрезка, 2. ответ

Концы это 6 бит и 6 бит +ответ 1 бит, итого 13 бит на шаг *6 = 78 бит. Можно ещё сократить немного, так как в последующем вопросе используется информация из предыдущего(один из концов интервала).

Уточни, что имеется в виду под фразой "какое количество информации", иначе задача неопределена и допускает многочисленные толкования.

akopovarch

Запишем условие задачи:

Поскольку в сообщениях одинаковое количество символов, то К1=К2. Соотношение количества информации можно записать как I1=1.5*I2. Общее кол-во символов в алфавите обозначается буквой N, по условию N1<=10, N2<=10.

Решение: I1=K1*i1; I2=K2*i2; Подставим в условие I1=1.5*I2 значения I1 и I2. Получаем K1*i1=1.5*K2*i2

Сократим в обеих частях уравнения К1 и К2, у нас останется

i1=1.5*i2

По условию мощности обоих алфавитов не превышают число 10, запишем это так

10>=2 в степени i1

10>=2 в степени i2

Предположим, что i2=1 бит, тогда i1=1.5 бита (а это противоречит условию)

Предположим, что i2=2 бита, тогда i1=3 бита -это и есть ответ задачи


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

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

Ниже записан алгоритм. укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 4, а потом 0. var x, a, b, c: integer; begin readln(x); a: = 0; b: = 0; while x > 0 do begin c: = x mod 2; if c = 0 then a: = a + 1 else b: = b + 1; x: = x div 6; end; writeln(a); writeln(b); end.
Ваше имя (никнейм)*
Email*
Комментарий*

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

forosrozhkov
gallush9
skalegin68
bogatskayaa
Prokopeva1062
compm
bogdanovaoksa
Vladimirovna
Татьяна1045
Golovinskii_Sirotkina1944
samoilovcoc
nailya-abdulova25
Рудаков Бахтовар
saidsaleh881
airon-082054