Трюк с XOR для собеседований и не только

Есть целая куча популярных задач для собеседований, которые можно решить одним из двух способов: или логичным применением стандартных структур данных и алгоритмов, или использованием некоторых свойств XOR сложным для понимания способом.
Хоть и непривычно ожидать решения с XOR на собеседованиях, довольно забавно разбираться, как они работают. Оказывается, все они основаны на одном фундаментальном трюке, который я постепенно раскрою в этом посте. Далее мы рассмотрим множество способов применения этого трюка с XOR, например, при решении популярной задачи с собеседований:
Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.
Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.


Еще я веду канал в Telegram 



В эпоху готовых отладочных плат и тысяч готовых модулей к ним, где достаточно взять пару блоков, соединить их вместе, и получить нужный результат, далеко не каждый понимает основы схемотехники, почему и как это работает, а главное — что надо делать, если это работает не так.




Многие жители мегаполисов (и не только) часто испытывают неудобства от необходимости рано просыпаться по утрам. Особенно зимой – за окном темно, организм думает, что еще ночь, отсюда чувство недосыпа и плохое самочувствие. Вместе с тем летом при утреннем солнечном свете просыпаться обычно заметно легче. Было решено попробовать «обмануть» организм, использовав для пробуждения плавно увеличивающуюся яркость искусственного освещения. Будильники с таким эффектом существуют готовые, однако стоят довольно дорого, кроме того, проект делался больше для собственного удовольствия.