Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Логические задачи
DF2 :: ФОРУМЫ > Основные форумы > Свободное Общение
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
Sav
Если алгоритм шифровки должен подходить к любому тесту с заранее неизвестными комбинациями ответов, то такого алгоритма не существует, т. к. различных комбинаций вариантов ответов больше миллиона, а трёхзначных чисел всего 1000. Если нужен алгоритм для нескольких (не более 1000) конкретных комбинаций ответов, то нужно исходить непосредственно из этих комбинаций.
Aleee
Sav, заранее заданных ответов нет. Имея этот алгоритм, мне нужно будет лишь в соответствии с номером варианта теста "сгенерировать" варианты ответа. Дальше вопросы из базы сами расставятся как нужно, подставив под эти числа правильные ответы. То есть задача именно такова, как я ее сформулировал, никаких других ограничений нет.
tolich
Переформулирую: Из трехзначного десятичного числа получить десятизначное четверичное число с как можно более разными цифрами. Так?

Пусть номер 235.
1) Берем две первые цифры, 23. Переводим в четверичную с/с: 113, добавляем к каждому разряду 1 (игнорируя, что это четверичная система), получаем 224 - номера трех первых верных ответов.
2) Берем две последние цифры, 35. Переводим в четверичную с/с: 203, добавляем к каждому разряду 1 (игнорируя, что это четверичная система), получаем 314 - номера трех следующих верных ответов.
2) Берем последнюю и перую цифры, 52. Переводим в четверичную с/с: 310, добавляем к каждому разряду 1 (игнорируя, что это четверичная система), получаем 421 - номера трех последующих верных ответов.
4) Смотрим, какой номер встречался меньше всех, это 3, берём его номером 10-го верного ответа.

Okay?

Да, если из 99 получается 1203, старшую 1 мы смело игнорируем, а если минимальны два или три номера, то берем минимальный по значению.
Aleee
tolich, спасибо, но хотелось бы, чтобы процесс вычисления занимал не больше 15-20 секунд. Мне потребовалась больше минуты, только чтобы из 719 в уме получить три четвертичных числа. Я ищу алгоритм, который может быть и алгебраически "некрасив", содержать какие-то перестановки, разные роли чисел в нем (например, параметр какой-нибудь прогрессии), особые правила замены одних чисел другими (вместо канонического перехода в четвертичную систему) и тому подобное - лишь бы все это было максимально просто. А под "нетрививально" я скорее подразумевал "неочевидно". Разные цифры - это здорово, но не обязательно. Необходимо, лишь чтобы те или иные цифры не превалировали совсем уж заметным образом. Ну и каждому варианту должно соответствовать только одно множество ответов (я так понимаю, с 4 пунктом могут возникнуть неопределенности).

И все равно спасибо.
tolich
Значит, возводить в квадрат двузначные числа в уме мы могем, а перевод в четверичную систему напрягает. gigi.gif

А это банально x/16%4, x/4%4 и x%4.

Пример: 71 (из 719): 71 - два раза пополам дает 17, еще 2 раза пополам 4. В первом случае остаток 3, во втором 1. Итого 0 (так как 4 идет в следующий разряд), 1, 3 - номера 1, 2, 4. tongue.gif
Aleee
Ну, вопрос ведь еще в том, сколько раз нужно проделать операцию. Но даже если сравнить возведение одного двузначного числа в квадрат или перевод одного двузначного числа в четвертичную систему, второе все равно получается для меня более трудоемким: во-первых, треть квадратов двузначных чисел я наизусть знаю, а во-вторых, много операций деления, а с остатками вообще непривычно работать. Вроде ничего сложного, но на автомате не выходит: моим гуманитарным мозгам нужно "контролировать" весь процесс. А у меня из-за этого на лице возникает странное (читай: глупое) выражение. Короче, надобно нам чевойто попроще.
nosferatu
У меня такое ощущение, что ты выдумываешь какую-то хитрую шпору.
Aleee
Нет, ведь исходные данные у меня - номер варианта, а не ответы на вопросы в нем.
tolich
Мне почему-то кажется, что Aleee препод. smile.gif
SaintDark
Видать алгоритм шифрования ответов егэ или чего-то в этом роде вычислили biggrin.gif
Aleee
Цитата(tolich @ 08 Jun 2012, 16:17) *
Мне почему-то кажется, что Aleee препод. smile.gif

Достаточно горячо. smile.gif
FBX
Я не понимаю, как можно зашифровать миллион вариантов в трехзначном (тысяча вариантов) числе?

А, или суть в том, чтобы поменять местами варианты ответов, адаптировав под расшифровываемую из фиксированного номера информацию?
Aleee
В том и дело, что адаптировать вообще ничего не нужно. Алгоритм должен просто задавать соответствие: каждому номеру варианта - одну последовательность ответов. Входные данные - номер варианта. Какие числа будут на выходе - это не важно, лишь бы они удовлетворяли тем условиям, о которых я писал.
Etoprostoya
xyz - трёхзначное число, (x,y,z) - цифры.
1) (x+y+z)mod4;
2) (x+y-z)mod4;
3) (x-y+z)mod4;
4) (x-y-z)mod4;
5) (-x+y+z)mod4;
6) (-x+y-z)mod4;
7) (-x-y+z)mod4;
8) (-x-y-z)mod4;
9) (x+y)mod4;
10) (y+z)mod4;
tolich
1)+8)=2)+7)=3)+6)=4)+5)=0 (mod 4)
Etoprostoya
Цитата(etoprostoya @ 08 Jun 2012, 20:42) *
xyz - трёхзначное число, (x,y,z) - цифры.
1) (x+y+z)mod4;
2) (x+y-z)mod4;
3) (x-y+z)mod4;
4) (x-y-z)mod4;
5) (-x+y+z)mod4;
6) (-x+y-z)mod4;
7) (-x-y+z)mod4;
8) (-x-y-z)mod4;
9) (x+y)mod4;
10) (y+z)mod4;

Цитата(tolich @ 08 Jun 2012, 20:57) *
1)+8)=2)+7)=3)+6)=4)+5)=0 (mod 4)
Думаешь, все сразу заметят, что ответы чередуются?
1) (x+y+z)mod4;
2) (x+y-z)mod4;
3) (x-y+z)mod4;
4) (x-y-z)mod4;
5) (10-x+y+z)mod4;
6) (10-x+y-z)mod4;
7) (10-x-y+z)mod4;
8) (10-x-y-z)mod4;
9) (x+y)mod4;
10) (y+z)mod4;
tolich
теперь =2, велика разница. smile.gif
Etoprostoya
Цитата(tolich @ 08 Jun 2012, 21:34) *
теперь =2, велика разница. smile.gif

Так не в этом же дело. Нужно было создать систему, по которой легко вычислять ответ и которую не легко понять тому, кто не знает системы.
Aleee
etoprostoya, это я уже прикидывал. Дело в том, что в зависимости от четности/нечетности суммы цифр почти весь тест (по крайней мере первые 8 ответов) будет состоять из двух вариантов ответа, которые вдобавок ко всему часто (примерно в половине случаев) будут идти одинаковыми блоками по 2/4 элемента.
Etoprostoya
Тогда возьми другой модуль. 5 - очень простой модуль для вычисления. Будут ответы 0, 1, 2, 3, 4. Ноль просто не используй или заменяй его в результате на какую-то одну цифру. Там с чётностью проблем уже не будет, наверное.

Или так:
1) (x+y+z)mod4;
2) (x+y-z)mod4;
3) (x-y+z)mod4;
4) (x-y-z)mod4;
5) (5-x+y+z)mod4;
6) (6-x+y-z)mod4;
7) (7-x-y+z)mod4;
8) (8-x-y-z)mod4;
9) (x+y)mod4;
10) (y+z)mod4;
Aleee
Цитата(etoprostoya @ 08 Jun 2012, 21:20) *
Тогда возьми другой модуль. 5 - очень простой модуль для вычисления. Будут ответы 0, 1, 2, 3, 4. Ноль просто не используй или заменяй его в результате на какую-то одну цифру. Там с чётностью проблем уже не будет, наверное.

Да, можно пойти в сторону усложнения (не вычислений, все остается просто, а скорее правил). Но тут тоже появляются свои нюансы. Например, четвертый и пятый ответы будут всегда одинаковыми (даже если заменить 10 на 5/6/7/8). Ноль придется всегда заменять на что-то одно: не должно быть неопределенности. Множество ответов для вариантов с одним или двумя нолями получается совсем некрасивым: много идущих подряд цифр, опять же блочность. Зато, конечно, если цифры разные, ненулевые - множества получаются хорошие.

В принципе, что-то подобное мне наверное и придется взять на вооружение, но я все еще лелею мысль, что получится придумать что-то простое и гениальное.
tolich
Двоично-десятичная запись:
469 = 01|00 01|10 10|01
4*4=16 = 0001 0110
6*6=36 = 0011 0110
9*9=81 = 1000 0001
Подчеркнутые цифры - двоичные номера правильных ответов, по порядку, складываем выделенные жирным числа по модулю 4, получаем ответ на 10-й вопрос.

Номера вариантов: 1 0 1 2 2 1 1 3 0 1.

Последний вычисляется так сложно потому, что квадраты заканчиваются только на 0,1,4,5,6, то есть, на 0,1,2 - нет тройки. Суммирование слегка повышает шанс её появления.
Etoprostoya
tolich
вариант, может быть и выдаёт более непредсказуемые результаты, но не думаю, что он из числа решаемых за 15-20 секунд.
Aleee
Цитата(tolich @ 08 Jun 2012, 22:40) *
Двоично-десятичная запись:
...

Очень, очень интересно. В принципе, однозначное число перевести в двоичную можно почти моментально, шесть ответов получаются очень быстро. Еще три тоже относительно быстро. С десятым можно что-нибудь арифметическое придумать. Из существенных недостатков: некоторые на первый взгляд нетривиальные номера вариантов дадут не самые красивые множества ответов (например, вообще без какого-нибудь варианта ответа: 701 -> {130001100}), а рядомстоящие варианты будут различаться совсем незначительно (чаще всего - на 1/2 ответа). Это все не критично, и вообще мне идея нравится. Но тем не менее.
tolich
Лично мне в этой схеме не нравится, что все номера, кроме последнего, зависят только от одной цифры. Увы, пока хороших идей больше нет.
Aleee
Действительно, совпадение хотя бы первых двух ответов у вариантов с одинаковыми первыми цифрами наблюдательный глаз заметить сможет. Будет, наверное, менее очевидно, если просто немного перетасовать порядок использования цифр, но зависимость все равно останется.
DRONыч
( (x+1)*4 + (y+1) *2 +z+1) mod 4
( (x+1)* (y+1) *(z+1)+z) mod 4
SerAlexandr
Цитата(DRONыч @ 09 Jun 2012, 12:21) *
( (x+1)*4 + (y+1) *2 +z+1) mod 4
( (x+1)* (y+1) *(z+1)) mod 4

В первой формуле х не влияет на ответ, во второй многовато нолей.
tolich
А ещё в обеих формулах отсутствует номер вопроса.
DRONыч
(x+y+z+3^( (2*z)mod 3) )mod 4
2 1 0 1 0 3 0 3 2
Aleee
Я что-то не понял, как у вас одно выражение с заданными xyz свелось к девяти ответам.
tolich
Маленькая просьба: забудьте о вычислениях по модулю. Например: 9*7+6 = 1*3+2 = 1 (mod 4). И так всюду, где в вычислениях по модулю фигурируют исходные десятичные цифры, останется только четыре варианта из десяти, вместо тысячи раскладов получается заведомо не больше, чем 64.
DRONыч
Цитата(Aleee @ 09 Jun 2012, 14:23) *
Я что-то не понял, как у вас одно выражение с заданными xyz свелось к девяти ответам.

уточнение по задаче: в тесте 10 вопросов или есть 10 разных вариантов теста? (если первое, то я привел ответы к первым 10 вопросам)
Aleee
Цитата(DRONыч @ 09 Jun 2012, 16:46) *
Цитата(Aleee @ 09 Jun 2012, 14:23) *
Я что-то не понял, как у вас одно выражение с заданными xyz свелось к девяти ответам.

уточнение по задаче: в тесте 10 вопросов или есть 10 разных вариантов теста? (если первое, то я привел ответы к первым 10 вопросам)

Все верно: в одном тесте 10 вопросов. Вариантов теста много, |XYZ| - номер варианта теста, который объединяет 10 вопросов. Я спрашивал, как получилось подставить в уравнение один набор чисел и получить 10 ответов.
tolich
Видимо, он подставлял разные.
packa
Верно ли утверждение x>y и y>x => x=y ?
SerAlexandr
Нет. Вот x>=y и y>=x => x==y - верно.
Irh
Цитата(packa @ 06 Sep 2012, 19:50) *
Верно ли утверждение x>y и y>x => x=y ?

packa
Юзаем спойлер

Нет, верно!) Завтра напишу почему, ну по крайней мере как нам сказали
FallenAngel
Так неравенства же строгие, значит приведенное условие не имеет значения.
packa
У нас тут не философия) Без всяких абстрактных имеет или не имеет значение В конце жду четкого ответа True or False! и пожалйста под спойлер!
SerAlexandr
дошло, что имелось, очевидно,
packa
2) не знаю почему, но я вот только начал учиться в универе, и тут всегда так пишут.
SerAlexandr
-> должно быть, по идее.
packa
меня тоже несколько лет так в школе учили Авось кто умный сюда придет и растолкует что к чему
feanor
Корректно было бы
Чему равно x>y ∧ y>x → x=y

как говорит википедия, для импликации используются и =>, и ->
http://ru.wikipedia.org/wiki/Импликация
http://ru.wikipedia.org/wiki/Математические_знаки
packa
Корректно обычно вопросов с подковыркой не бывает)))
FallenAngel
Все-таки это не лишено смысла, если значения x и y находились бы в параллельных измерениях. Т.е., если x>y, то неравенство x<y возможно в случае, когда y "разорвала" бы рассматриваемое измерение, то бишь вышло за пределы множества, которое принимают x и y. Но параллельное измерение должно быть фактически зеркальным изображением нашего. Тогда остается лишь "вбить" y в систему, связанную с x в параллельном измерении.
Так что давайте молиться, чтобы спонтанные разрывы материи нашего измерения произошли в этом запутанном выражении.

Upd. Другими словами, это явление будет выглядеть, как будто y выворачивает себя наизнанку. Если бы у нас были бы функции f(x) и f(y) в условии, даже линейные, я бы наглядно показал вам, как я это себе представляю :3
Sav
Цитата(packa)
У нас тут не философия) Без всяких абстрактных имеет или не имеет значение В конце жду четкого ответа True or False! и пожалйста под спойлер!

Где тут философия? Отсутствие смысла у выражения - вполне конкретная его характеристика.
Тем более что не указано, чем являются x и y (или каким образом для них определены операции сравнения).
tolich
xyx>yy>xx=yx>y и y>xx>y и y>x => x=y
1100101
1201001
2110001
Впрочем, даже без таблицы: (x>y и y>x) - ложь, а из лжи, мало того, что имплицируется что угодно, так ещё и выводится что угодно.

Это одно из свойств логического вывода.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.