|
из тестового задания
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov...Если вы можете доказать... ок. понял. Тупое разложение, на маленьком кол-ве, даёт возможность так сказать(N=K-1). типа практически. Мне пока не получилось подойти универсально к разложению в матрицу. Есть мысли, но пока занят :( попробую позже осуществить второй подход к снаряду... (круглый) ЗЫ у Вас сообщений три шестёрки - явно намёк на пора спать:) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 02:21 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Akinamini.weblabвключены следующие выключатели [3, 4, 11, 19, 27, 35] шпион в комнате номер 6 ваши действия? Значимыми считаем первые 7 тумблеров. Остальные игнорируем. Текущая сумма 3+4=7. Требуется получить сумму, которая при делении на 8 даст в остатке 6. Ближайшие такие суммы - 6 и 14. 6 получить одним переключением нельзя. 14 - можно (3+4+7). Наши действия - включить тумблер 7. Aleksandr Sharahov Akina, Это не очевидно, что ваш алгоритм (перебор?) всегда найдет решение. Можете доказать? 3 4 6 room 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 02:40 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Вообще линейная комбинация, в данном случае, не зависимо от количества элементов, 7,8, или 40 бит, судя по всему не будет давать решение. Доказать это можно достаточно просто: Пусть значение линейной комбинации на определенном наборе единичных бит даёт нам число t. Пусть t%8!=n(номер комнаты). В таком случае, мы должны либо добавить один элемент из линейной комбинации, либо убрать из неё определённый элемент. Однако, достаточно легко допустить что в текущем наборе элементов уже присутствуют все элементы которые можно было добавить для требуемого результата, и в этом же наборе отсутствуют все элементы которые можно было бы убрать для требуемого результата. Таким образом, изменением положения одного бита мы не добьёмся требуемого результата. Aleksandr Sharahovmayton, это первое, что приходит в голову, второе - забубенить модульную арифметику, но это все из пушки по воробьям, надо ж и голову иметь. С интересом глянул бы на 40-битное решение ) маловероятно что оно существует ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 04:25 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
От блин, вы сделали мой день !!! как теперь работать ??????? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 07:32 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
mini.weblabдля шифровки используем первые 3 ячейки. если наш агент приходит в гостиницу и комната для него заказана, используем колонку Room booked если наш агент приходит в гостиницу и комната для него предварительно не заказана, используем колонку Room not booked Код: plaintext 1. 2. 3. 4.
PS: в крайнем случае используем жвачку Хм... здесь нет чита и нет решения. Вы привели табличку декода 8-ричной системы. И что дальше с этим делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 09:53 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Честно говоря у меня - масса решений. Но все они требуют чтобы изначальное состояние тумблеров было - не случайным. Случайность "обламывает" все поиски по 40 битами. С ней пока можно гарантировать только "чет-нечет" или ДА/Нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 10:12 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Да тут Aleksandr Sharahov уже всё сделал вроде-бы, только на собеседование вместо автора не сходил ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 10:30 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
mayton, У меня их тоже вроде бы много: ((2^N)-1)! решений для 2^N комнат. Но это лишь одно решение с точностью до перестановки битов в кодах. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 10:36 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Apoj_sqlDima TХЗ как решать, но я проверялку написал Тупо генерит все варианты и проверяет что из каждого можно получить все 8 комнат одним переключением. Алгоритм в методе algo(), менять только его. SWITCH_COUNT - кол-во переключателей. 40 это очень долго 10^13 вариантов. Тестил на 30. Формула SUM % N не работает при N от 9 до 13, дальше не тестил. Ещё бы написали алгоритм проверки алгоритма проверки. Было ж указано, что при mod 9 8 и 0 одно и то же. У Вас я это не увидел при проверке. ЗЫ Мне уныло лезть в c++: 0) надо ставить к студии с++ 1) я "туда" лез последний раз 6 месяцев назад (надо было решать тестовое задание для моего нонешнего работодателя) 2) удовольствия при п.1 не получил и лезть туда без особой нужды нет ни малейшего желания. Тоже проверял. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
При 32х переключателях выдал нельзя получить 6 при включенных 6, 15, 24. PS Не нравиться С - портируй на то что нравиться, код простейший, специально ничего специфичного из С не использовал. На любой ЯП перенесется легкой правкой синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 10:54 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
ну ё моё, всё просто для описания номера до 8-ми комнат нужно 3 бита (доказывать не буду) для решения задачи достаточно 3 + 3 +1 = 7 ключей выделим 3 взаимно пересекающиеся группы 1, 2, 3, 4 1, 4, 5, 6 1, 6, 7, 2 каждый бит номера комнаты будет равен чётности количества включеных ключей в конкретной группе: чётно - 1, нечетно - 0 установка довольно очевидна исходя из тех битов, которые нужно инвертировать в текущем состоянии 1-й бит измененяем 3-й ключ 2-й бит - 5-й ключ 3-й бит - 7-й ключ 1-й и 2-й - 4-й ключ 2-й и 3-й - 6-й ключ 3-й и 1-й - 2-й ключ все - 1-й ключ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 11:11 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
kealon(Ruslan), эх, рановато... каждому интересно ж самостоятельно дойти ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 11:25 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Заглянул под спойлер и немного успокоился ) Систематическое решение выглядит иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 11:32 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, ну не обязательно спойлер открывать ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 11:32 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Ломать голову ближайшие пару дней некогда, заглянул под спойлер, затестил решение kealon(Ruslan), правильно работает на 7 переключателях. На любом большем количестве тоже заработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 11:42 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
kealon(Ruslan)ну ё моё, всё просто для описания номера до 8-ми комнат нужно 3 бита (доказывать не буду) для решения задачи достаточно 3 + 3 +1 = 7 ключей Мне кажется в этом есть связь с Матричным Кодированием или Исправлением ошибок. Точно не вспомню термин но лет 15 назад мы проходили по Теории Передачи Сигналов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 12:19 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
maytonkealon(Ruslan)ну ё моё, всё просто для описания номера до 8-ми комнат нужно 3 бита (доказывать не буду) для решения задачи достаточно 3 + 3 +1 = 7 ключей Мне кажется в этом есть связь с Матричным Кодированием или Исправлением ошибок. Точно не вспомню термин но лет 15 назад мы проходили по Теории Передачи Сигналов. не могу сказать, у нас только у радиофизиков вроде было что-то с устойчивостью сигналов, либо я прогулял в общем виде для шифровки N бит таким способом нужно (как и написал Aleksandr Sharahov) SUM(i=1.. N , C(i,N)) = 2^N - C (0,N) = 2^N - 1 ключей где С(k,n) = n! / [k! (n-k)!] ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 12:53 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
mayton, почему не решение? пусть вы агент-сменщик, приходите в гостиницу 1) смотрите на коммутационный щит и записываете первые 3 позиции в блокнотик 2) спрашиваете портье, заказана ли для вас комната в гостинице 3) а) комната заказана: смотрите в таблицу, в колонку 'Room booked', находите комбинацию из блокнотика и получаете номер комнаты б) комната не заказана: смотрите в таблицу, в колонку 'Room not booked', находите комбинацию из блокнотика и получаете номер комнаты ( все по ТЗ ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 13:24 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Aleksandr Sharahovkealon(Ruslan), эх, рановато... каждому интересно ж самостоятельно дойти ) так вы же уже все объяснили. нет? =) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 13:29 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
mini.weblabAleksandr Sharahovkealon(Ruslan), эх, рановато... каждому интересно ж самостоятельно дойти ) так вы же уже все объяснили. нет? =) от вас же требуют суть рассказать (а именно как получилась эта табличка) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 13:41 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Если вы можете доказать нечто подобное для произвольного количества комнат, то вам, конечно, не за чем "впрягать степени двоек". ) пробую: пусть у нас N переключателей, Идея метод шифрования (как я его поняла): из текущего состояния, поменяв один переключатель, мы можем перейти в N отличных от начального состояний (что даст в сумме 1+(N) = N+1 различных состояний системы) Итог: с помощью вашего метода, используя N переключателей, можно зашифровать номер N+1 комнату ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 13:57 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, для вас, как я поняла, - это типовая задача а предметную область обозначить можно? ( в смысле куда копать, чтоб по фэншую? =) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 14:16 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
mini.weblabkealon(Ruslan), Александр уже все объяснил 18698560 это называется "как кнопки нажимать", а не решение :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 15:07 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
mini.weblabAleksandr Sharahov, для вас, как я поняла, - это типовая задача а предметную область обозначить можно? ( в смысле куда копать, чтоб по фэншую? =) ) По фэншую 2 сообщения kealon(Ruslan): 18700090 и 18700779 практически полностью и составляют решение. Т.е. суть задачи состоит в перечислении всех подмножеств множества из N=3 битов. Всего их (вспоминаем сумму биномиальных коэффициентов) 2^N=8. Перейти от одного подмножества к другому можно за одну операцию объединение или разности (в нашем случае xor). Для каждого отдельного бита все эти xor'ы выродятся в те самые суммы. На подмножества можно смотреть как на функции перехода xor'ом от одного значения к другому. -1 появляется от того, что тождественная функция нам не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 15:19 |
|
из тестового задания
|
|||
---|---|---|---|
#18+
kealon(Ruslan), ну когда табличку привели, объяснили, что и как нужно нажимать, то решение додумать уже не проблема :-) идея метода в 18701187 (это в моем понимании, хотя, может, Александр и не согласится) ПС: честно говоря, пока не увидела решение Александра, даже в голову не пришло посмотреть на задачу именно в таком ключе :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 15:28 |
|
|
start [/forum/topic.php?fid=16&msg=39150419&tid=1339609]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 158ms |
0 / 0 |