Форум » Логические выражения » Задание №18, 173 » Ответить

Задание №18, 173

Абдуллин: Ответ кардинально не сходится с предоставленным. У меня получается 185. Вот мой ход решения x*26<>0 - B x*13<>0 - C x*78<>0 - E (notB+notC)->(e->notA)=1 not(notB+notC)+notE+notA=1 notB=11100101 notC=11110010 not(notB+notC)=00001000 not(notB+notC)+notE=10111001 A=not(notB+notC)+notE=10111001=185 Если несложно, можете объяснить в чем ошибка и привести пример числа x, при котором мой ответ не удовлетворяет данному условию Заранее спасибо

Ответов - 3

Медко: Это действительно "хорошая" задача в том смысле, что при ее решении очень часто допускаются ошибки. Почитайте этот материал http://kpolyakov.spb.ru/download/bitwise.pdf . Он многое объясняет. А ответ на эту задачу скрыт в этой строчке Абдуллин пишет: not(notB+notC)=00001000 Amax = 10002 = 8. Однако то, что это правильный ответ, Вы поймете только после прочтения материала выше.

Абдуллин: Произведем поразрядную конъюнкцию числа 8 со всеми остальным, учитывая первоначальное выражение not(notB+notC)+notE+notA=1 1000&11010=1000, что означает, что значение notB=0 1000&1101=1000, что означает, что значение notC=0 notB+notC=0 not(notB+notC)=1 Остальное смысла нет проверять, ведь одно слагаемое равно единице Или я опять что-то в упор не вижу?

Медко: Да, с числом 8 я поторопился, признаю. Здесь Вы правы. А вот как найти все числа (ну или хотя-бы одно), являющиеся контрпримером к Вашему ответу A = 185. 1) Среди битов 7,5,4,3,0 должен быть хотя бы один единичный 2) Среди битов 6,3,2,1 должен быть хотя бы один единичный 3) Нулевыми битами должны быть 4,3,1 или 3,2,0 Таких чисел очень много. Наименьшее из них - число 5 = 1012. Объясню: во-первых, у числа 5 нулевой бит равен единице - первое условие выполняется, во-вторых, второй бит равен единице - второе условие выполняется, в-третьих, четвертый, третий и первый бит одновременно являются нулями. Проверьте, и Вы получите ложь.




полная версия страницы