Перейти к содержанию

Сообщения от Викторина

Аватар пользователя
#1037
Да никак, алгоритм ущербен значит. Но я пытался.

Добавлено через 18 часов 50 минут
Всего 16 вариантов сообщения.
Первые 4 бита - само сообщение.
5й равен 0, если число единиц в сообщении четное (то есть все единицы, ни одной единицы или 2 единицы), 1 если нечетное (одна единица или три).
Таким образом, если есть ошибка в самом сообщении или в 5м бите, это сразу видно. И нет ситуации, когда ошибки нет и это не очевидно.
Что делать дальше, я придумал, но придумал явно неправильно, но сама мысль вроде верная и кажется может пригодится. По крайней мере, если сходятся таким образом первые 5 битов, то 2 последних могут быть любыми, в том числе неиспорченными, мы все равно читаем сообщение.
А если тут ошибка есть, то можно понадеятся, что мы извлечем какую-то пользу из 6го и 7го, которые точно будут достоверные, если ошибка все же видна в первых пяти. Я пробовал вариант, когда 6й бит проверяет четность единиц среди битов 2-5, а 7й - среди битов 5-6.
Возможно, стоит покрутить по другому, например четность среди 1-2 и 3-4.

Добавлено через 18 минут
Например, писать 1 в 6й бит, если число единиц среди 1-2, 5 составляет ни одной или одну, и 0, если 2 или 3.
Аналогично, в 7й бит писать число единиц среди битов 3-5.
Аватар пользователя
#1038
Нужен окончательный вариант ответа.
Ну, если сегодня никто не разгадает, то выложу разгадку.
Всё не так плохо как Вы думаете. Всё намного хуже!
Аватар пользователя
#1039
Я чет не могу сообразить. Способом выше я отсекаю случаи, когда ошибки нет или она в контрольных битах, и могу определить 2 бита сообщения, среди которых ошибка - то есть получаю в худшем случае 2 варианта, среди которых 1 правильный.
В ответ пользователю Uranium235
Аватар пользователя
#1040
Всего 16 вариантов сообщения.
Первые 4 бита - само сообщение.
5й равен 0, если число единиц в сообщении четное (то есть все единицы, ни одной единицы или 2 единицы), 1 если нечетное (одна единица или три).
Таким образом, если есть ошибка в самом сообщении или в 5м бите, это сразу видно. И нет ситуации, когда ошибки нет и это не очевидно.

Ну, например, получили сообщение 11100**.
Как понять Тут было чётное число единиц и первый бит испортили с 0 на 1? Или второй? Или третий? А может четвёртый с 1 на 0? А может вообще пятый запортили, а в информационной части всё правильно?
Всё не так плохо как Вы думаете. Всё намного хуже!
Аватар пользователя
#1041
Хермит, погоди до завтра плз. Не выкладывай ответ.
Согласна с Ураном, что 3 бита должны контролировать инфу. Что там с чем сложить или умножить, хочу утром покрутить.
Т.е. я знаю, что надо посмотреть в википедии, чтобы это решить. Но по памяти этот алгоритм не помню абсолютно.
..разым двазым трызым рызым пята лата сигерь мата локом боком крюк за крюк из бульмы бульма урюк..
Знание некоторых закономерностей освобождает от изучения многих фактов.
Мечты сбываются рано или поздно, так или иначе.
Аватар пользователя
#1042
Ну, например, получили сообщение 11100***.
Как понять Тут было чётное число единиц и первый бит испортили с 0 на 1? Или второй? Или третий? А может четвёртый с 1 на 0? А может вообще пятый запортили, а в информационной части всё правильно?
Да никак не понятно, какой из. Но понятно, что ошибка среди первых 5 битов и она точно есть.
В ответ пользователю Sesame
Аватар пользователя
#1043
Sesame
Хермит, погоди до завтра плз. Не выкладывай ответ.
Согласна с Ураном, что 3 бита должны контролировать инфу. Что там с чем сложить или умножить, хочу утром покрутить.
Т.е. я знаю, что надо посмотреть в википедии, чтобы это решить. Но по памяти этот алгоритм не помню абсолютно.
Хорошо :)

Добавлено через 32 секунды
Uranium235
Да никак не понятно, какой из. Но понятно, что ошибка среди первых 5 битов и она точно есть.
Тут согласен.

Добавлено через 9 минут
Sesame
Т.е. я знаю, что надо посмотреть в википедии, чтобы это решить. Но по памяти этот алгоритм не помню абсолютно.
Нет, в Википедии вообще ничего не надо смотреть и не уверен, что там есть. Тут загадка почти только на сообразительность. Почти никаких специальных знаний не надо. По крайней мере, я её разгадал вообще без всяких Википедий, гуглений, чтений книжек по помехоустойчивому кодированию и пр.
Всё не так плохо как Вы думаете. Всё намного хуже!
Аватар пользователя
#1044
Я пока только проверил непарадоксальность самого условия.
По идее транзакция у нас 7 бит, сообщение 4 бита, а вариантов для местонахождения ошибки 8 (с первого по седьмой бит, а также отсутсвие ошибки), что есть 3 бита. В сумме размер транзакции равен размеру сообщения + информация об ошибке, так что решение по идее может существовать.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Sesame
Аватар пользователя
#1045
Sesame
Но по памяти этот алгоритм не помню абсолютно.
Его не надо помнить. Его надо придумать. :)
И просьба Википедией и поисковыми системами не пользоваться!
Всё не так плохо как Вы думаете. Всё намного хуже!
Аватар пользователя
#1046
Не знаю, мне почему-то кажется, что может прокатить хеш-сумма такого вида:
(-1)*(bit1) +2*(bit2) -3*(bit3) +4*(bit4)
То есть примеры сообщений:
0000 (основная часть) 000 (хеш-сумма)
0001 100
0010 101
0011 001
0100 010
1000 111

Но мне как-то трудно доказать или опровергнуть, что это будет работать. Навскидку, вроде бы ошибки находятся. Однако, не исключено, что я просто не углядел ситуации, где это не так.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
#1047
Ment
Не знаю, мне почему-то кажется, что может прокатить хеш-сумма такого вида:
(-1)*(bit1) +2*(bit2) -3*(bit3) +4*(bit4)
То есть примеры сообщений:
0000 (основная часть) 000 (хеш-сумма)
0001 100
0010 101
0011 001
0100 010
1000 111

Но мне как-то трудно доказать или опровергнуть, что это будет работать. Навскидку, вроде бы ошибки находятся. Однако, не исключено, что я просто не углядел ситуации, где это не так.

Не совсем понял как составлять последовательность, если будут отрицательные числа, но вот сразу вопрос: допустим получили мы 0001000. Как понять тут нам пересылали 0000000 и испортили четвёртый бит с 0 на 1 или 0001100 и испортили пятый бит с 1 на 0?
Всё не так плохо как Вы думаете. Всё намного хуже!
В ответ пользователю Hermit
Аватар пользователя
#1049
Hermit
И просьба Википедией и поисковыми системами не пользоваться!
ну да, вроде об этом договорились еще в начале викторины.

В общем, посмотрела я, что тут предлагали и предлагаю вообще не передавать исходное сообщение. Точнее так.
Пусть исходное сообщение состоит из 4х бит: i1, i2, i3, i4
Тогда передаем следующее:
bit1: i1
bit2: i1
bit3: i2
bit4: xor(i1, i2)
bit5: xor(bit4,i3)
bit6: xor(bit5,i4)
bit7: xor(i3,i4)

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

Вот только совсем не легкий пример получился. Возможно, кто-то найдет решение попроще.

Добавлено через 7 минут
xor (0,0) = 0
xor (0,1) = 1
xor (1,0) = 1
xor (1,1) = 0

т.е. это проверка одинаковые операнды или разные.

Пример.
Необходимо передать 1 1 1 1
Передаем 1 1 1 0 1 0 0
..разым двазым трызым рызым пята лата сигерь мата локом боком крюк за крюк из бульмы бульма урюк..
Знание некоторых закономерностей освобождает от изучения многих фактов.
Мечты сбываются рано или поздно, так или иначе.
В ответ пользователю Sesame
Аватар пользователя
#1050
Sesame


Вот только совсем не легкий пример получился. Возможно, кто-то найдет решение попроще.

Ничего сейчас посмотрим.

Добавлено через 17 минут
Да действительно пример не из лёгких, но всё-таки попробуем закодировать и передать им комбинацию
1110

b1=1
b2=1
b3=1
b4=0
b5=1
b6=1
b7=1

То есть 1110111
Значит, если мы получили 1110111то он отправлял 1110 и ни один бит не испортили

А теперь попробуем закодировать и передать комбинацию
1101

b1=1
b2=1
b3=1
b4=0
b5=0
b6=1
b7=1

То есть 1110011

А вдруг он на самом деле передавал 1101, а не 1110 и просто пятый бит испортили с 0 на 1?

Сейчас я только ещё сам себя проверю правильно ли я рассчитал.

Добавлено через 3 минуты
Вроде правильно, но пример действительно не лёгкий. :)
Всё не так плохо как Вы думаете. Всё намного хуже!
Аватар пользователя
#1051
завтра поищу попроще
и этот перепроверю заодно
..разым двазым трызым рызым пята лата сигерь мата локом боком крюк за крюк из бульмы бульма урюк..
Знание некоторых закономерностей освобождает от изучения многих фактов.
Мечты сбываются рано или поздно, так или иначе.