Ну, ok. Вот разгадка.
Все описанные ниже арифметические действия я буду выполнять по модулю 2.
0+0=0
0+1=1
1+0=1
1+1=0
Значения пятого, шестого и седьмого битов вычисляются
b
5=b
1+b
2+b
4b
6=b
1+b
3+b
4b
7=b
2+b
3+b
4На противоположном конце проверяют эти равенства.
1) Если
ни один бит не испортили, то
все три будут выполняться.
2) Если
испортили четвёртый бит, то
все три будут невыполняться.
Если же
не выполняется только часть, то
3) Если
не выполняются первое и второе, то испортили
первый бит.
4) Если не выполняются
первое и третье, то испортили
второй бит.
5) Если не выполняются
второе и третье, то испортили
третий бит.
Ещё остаётся добавить, что
6) Если не выполняется
только первое, то испортили
пятый бит.
7) Если не выполняется
только второе, то испортили
шестой бит.
8) Если не выполняется
только третье, то испортили
седьмой бит.
Поэтому я и написал, что самую лучшую идею подала Сезам.
SesameЯ еще вспомнила, что ксорить можно больше двух бит
А вот почему самый лучший алгоритм придумал Уран сейчас объясню.
Добавлено через 1 час 4 минуты
Я разгадал эту загадку довольно давно и уже после того, как я её тут написал, я потом ещё вспоминал, как я её тогда разгадал.

Правда тогда, когда я её первый раз разгадал я вычислял значения битов
b
5=b
1+b
2b
6=b
1+b
3b
7=b
2+b
3и потом, если четвёртый бит был 1 - инвертировал все три дополнительных бита, но это тоже самое.
Вчера, вообще-то уже сегодня, ночью я лёг спать, но вместо того, чтобы уснуть начал думать почему в моём алгоритме получается установить в каком из битов ошибка, а в других нет. И тут я вдруг вспомнил две вещи!! И сразу понял, что именно по этому! Утром я проверил и оказалось, что я даже не совсем правильно их вспомнил ночью, но действительно именно так и было!
В моём алгоритме получалось установить в каком бите ошибка, потому что
каждая полученная им комбинация отличалась от любой другой полученной им комбинации как минимум тремя битами, а в других алгоритмах этого не было!!!Вот комбинации и количество бит, которыми каждая из них отличается от любой другой для моего алгоритма!
0000 0000000 -334344343343447
1000 1000110 3-43433434434374
0100 0100101 34-3433434434734
1100 1100011 433-344343347443
0010 0010011 3443-33434474334
1010 1010101 43343-4343743443
0110 0110110 433434-347343443
1110 1110000 3443433-74434334
0001 0001111 43343447-3343443
1001 1001001 344343743-434334
0101 0101010 3443473434-34334
1101 1101100 43347443433-3443
0011 0011100 344743343443-334
1011 1011010 4374344343343-43
0111 0111001 47343443433434-3
1111 1111111 744343343443433-
Как видите, любая из моих комбинаций отличается от любой другой, как минимум тремя битами.
И по этим вещам получалось, что если две комбинации будут отличаться друг от друга двумя битами, то можно будет понять, что
была ошибка, но вот где именно не понять. Если одним, то невозможно будет даже понять, что вообще была ошибка. Ну а если где нибудь будет ноль, то и без всяких помех может оказаться непонятно что там передавали.

После этого мне стало очень легко определять будет ли работать предложенный алгоритм или нет и находить пары комбинаций, где будет неопределённость. (Вообще когда я только выложил загадку я подумав схватился за голову: как же я буду определять подойдёт ли алгоритм или нет и первый алгоритм Сезам уже подтвердил мои опасения

) Ну а теперь с этим никаких проблем не стало.

Вот количества символов которыми различаются разные алгоритмы.
Алгоритм Урана
0000 0000000 -433463533443542
1000 1011010 4-33645333445324
0100 1010100 33-4354644334235
1100 0001110 334-536444332453
0010 0110101 4635-43335423344
1010 1101111 64534-3353243344
0110 1100001 354633-442354433
1110 0111011 5364334-24534433
0001 0111000 33443542-4334635
1001 1100010 334453244-336453
0101 1101100 4433423533-43546
1101 0110110 44332453334-5364
0011 0001101 354233444635-433
1011 1010111 5324334464534-33
0111 1011001 42354433354633-4
1111 0000011 245344335364334-
Алгоритм Сезам
0000 0000000 -424244424444464
1000 1000111 4-42424442444446
0100 0100100 24-4442444246444
1100 1100011 424-444244424644
0010 0010010 2444-42444642444
1010 1010101 42444-4244464244
0110 0110110 442424-464444424
1110 1110001 4442424-46444442
0001 0001001 24444464-4242444
1001 1001110 424444464-424244
0101 0101101 4424644424-44424
1101 1101010 44424644424-4442
0011 0011011 446424442444-424
1011 1011100 4446424442444-42
0111 0111111 64444424442424-4
1111 1111000 464444424442424-
Алгоритм Мента
0000 0000000 -446244424444442
1000 1110001 4-64424442444424
0100 1001110 46-4442444244244
1100 0111111 644-444244422444
0010 0101000 2444-44644422444
1010 1011001 42444-6444244244
0110 1100110 442446-442444424
1110 0010111 4442644-24444442
0001 0010100 24444442-4462444
1001 1100101 424444244-644244
0101 1011010 4424424446-44424
1101 0101011 44422444644-4442
0011 0111100 444224442444-446
1011 1001101 4424424442444-64
0111 1110010 42444424442446-4
1111 0000011 244444424442644-
С помощью любого из алгоритмов можно определить, что была ошибка, потому что нигде нет единиц, но в алгоритме Урана меньше всего двоек, то есть меньше всего неопределённостей, когда непонятно какую из комбинаций передавали, поэтому я и написал, что он предложил самый лучший алгоритм.
Пусть Сезам или Уран загадывают.