"Все этикетки, в которых упоминается слово "чёрный", сообщают ложь." не может быть правдой (противоречит само себе), а значит ложно. Значит другая этикетка с "чёрный" должна сообщать правду (иначе первая этикетка будет правдивой). Значит приз в чёрной коробке (и чёрная коробка врёт). Итого: СК: правда ЧК: ложь (приз здесь) БК: ложь
"Все этикетки, в которых упоминается слово "чёрный", сообщают ложь." не может быть правдой (противоречит само себе), а значит ложно. Значит другая этикетка с "чёрный" должна сообщать правду (иначе первая этикетка будет правдивой). Значит приз в чёрной коробке (и чёрная коробка врёт). Итого:
СК: правда
ЧК: ложь (приз здесь)
БК: ложь
Может ли начальный вариант компилятор преобразовать не только к:
но, также, и к (нет, ну а вдруг на целевой архитектуре < работает намного медленнее, чем !=):
можно преобразовать в (как-то так, на C я не пишу):
т.е.:
ну… поскольку ub в программах не существует, то можно оптимизировать до:
или же:
Или я что-то не учёл?
round