Имя: Пароль:
LIFE
Наука
OFF: Пятницы, школа, тырим плюшки, едим булочки
,
0 Харлампий Дымба
 
29.09.23
13:01
1. Вася написал программу-шифратор: каждая буква в тексте при нажатии F2 заменяется на другую. Разные буквы заменяются на разные, только нижний регистр, русский алфавит, пробелы и знаки препинания не изменяются.
Вася написал "съешь ещё этих мягких французских булочек, да выпей чаю" и нажал F2. Пришел Петя и продолжил нажимать F2 - 3999 раз, но так и не увидел больше исходную фразу. Сколько раз ещё придётся нажать?

2. Хильдур Бок готовится стать фру Янссон и на радостях напекла гору плюшек - вся кухня заставлена блюдами с ними - и отвлеклась на разговор по телефону с Фридой. В меру упитанный мужчина залетает в комнату через окно и тырит плюшки - собирая за один прилёт с выбранных блюд равное количество плюшек. Как действовать, чтобы минимизировать количество залётов?
44 Irbis
 
29.09.23
14:58
(39) Ничего неопределённого. Про медианную зряплату слышал, вот по тому же самому принципу? Ищется число, справа и слева от которого будет одинаковое количество блюд с плюшками. Дальше для чёта за медиану можно бать ближайшее меньшее, при нечетном количестве блюд саму медиану.
45 Харлампий Дымба
 
29.09.23
14:58
(42) 4,5,6,7,11 тоже подходит
46 НафНаф
 
29.09.23
15:02
(42) я взял f(33)=5460, она же f(32)
4*3*5*7*13=5460, причем 4+3+5+7+13 = 32
47 НафНаф
 
29.09.23
15:03
(43) ну я тоже поиски начал не с функции Ландау (тоже про нее не знал)
48 НафНаф
 
29.09.23
15:05
(43) разные в разные, это не значит, что p(a)<>a
это значит, что для a<>b => p(a)<>p(b)
49 Харлампий Дымба
 
29.09.23
15:11
(46) ага, значит всё-таки неожиданно для себя я всё-таки сделал ловушку в задачке. Чтобы 4*3*5*7*13 работало, у тебя должно быть 1+3+4+5+7+13=33, то есть одна буква должна заменяться на себя. Но "каждая буква в тексте заменяется на другую".
50 maxab72
 
29.09.23
15:14
С плюшками понятно, все количества плюшек представляем в виде двоичных чисел, и потом забираем разрядами, где они есть. Пример, есть пять тарелок: плюшек 1 2 3 4 5, значит
числа:
100
010
110
001
101
Потребуется три захода: каждым заходом снимаем числа в одном разряде: 1 заход, снимаем 1 в 1 разряде
000
010
010
001
001
Второй заход - снимем во втором разряде
000
000
000
001
001
третий - в третьем разряде
000
000
000
000

По первой задаче так и не понял алгоритм шифрования.
51 Харлампий Дымба
 
29.09.23
15:16
Задача 1  решена (22)
Выложу тогда кому будет интересно своё решение:
Смены букв - замкнутые цепочки, ищем НОКи разложений числа 33 на слагаемые. Три максимальных получаются для наборов букв НОК(3,3,4,5,7,11)=4620; НОК(4,5,6,7,11)=4620; НОК(1,5,8,9,11)=3960.
3960 нажатий не хватило, а значит надо ещё 620.

Примечания:
1.Слагаемые должны быть больше 1 (условие "разные" в "разные" не позволяет букве переходить в себя)
2.Буквы "ж" хоть и нет во фразе, но она в любом случае появляется на экране, если бы в исходной фразе не было 2 или более букв, то надо было бы рассматривать также варианты для 31,30 и т.д букв.
3.функция Ландау.
4.Теоретически могло быть несколько ответов, так что надо смотреть срез максимальных НОК.
52 Гена
 
гуру
29.09.23
15:33
Вроде как плюшки от обратного надо считать.
1. Ясно, что в последний прилёт как ни крути, но надо будет забрать только по 1-ой (последней) со всех оставшихся блюд.
2. В предпоследний - по 2-ве. Потому что если по три, то двойка останется.
3. В предпред-последний - по 4-ре.
...

Итак. Берётся максимум и забирается n 2n булочек, где
2n < Max < 2n+1
53 Харлампий Дымба
 
29.09.23
15:30
(52) Да, действительно, если количество плюшек числа подряд - то представляем их в двоичной системе, где число полетов - число разрядов в наибольшем числе, а дальше летаем собирая степени двойки с тарелок, где есть единичка в соответствующем полёту разряде.

Но что делать, если есть дырки? Ну вот 1,3,4 - за 2 полёта, а не за 3 можно сделать

(41) А зачем повторять слагаемые? Если ты берёшь n и n, так лучше возьми n и 2*n. Все-равно всё-что между n и 2n ты собрать не сможешь за одни раз. А вот всё что выше 2n ты во втором случае соптимизируешь.
Как пример: 3,6,9 - за 2 пролёта.
54 RomanYS
 
29.09.23
15:35
(46) 32 брать нельзя, так как одна оставшаяся буква будет превращаться сама в себя, а это противоречит условию.
55 Гена
 
гуру
29.09.23
15:35
(53) Но что делать, если есть дырки?
Ну мы же рассмотрели наихудший вариант. А так - случайно может быть и изначально на всех блюдах одинаковое количество плюшек, и мы за раз их все и возьмём )
56 RomanYS
 
29.09.23
15:36
(51) НОК(1,5,8,9,11) вот это тоже нельзя, минимальная цепочка - 2 буквы
57 RomanYS
 
29.09.23
15:40
(53) А зачем повторять слагаемые?
ответить не готов, но это не запрещено. Да возможно замена на  2n всегда возможна, т.е. без повторов можно решить как мимимум за то же количество залетов
58 Харлампий Дымба
 
29.09.23
15:41
(52) Да, это понятно. Оценка сверху ОКРВВЕРХ(lg<SUB>2</SUB>n). А если подряд, то это правильный алгоритм. А вот 1,3,4? В твоём алгоритме, ты заберёшь 4 и будешь летать ещё 2 раза. А мог бы взять 3 с двух старших тарелок и вернутся ещё лишь раз.

Или вот 1,4,6,10:
заберёшь 1 со старших блюд - будешь летать 4 раза
заберёшь 4 со старших блюд - будешь летать 4 раза
59 НафНаф
 
29.09.23
15:42
(54) "дна оставшаяся буква будет превращаться сама в себя, а это противоречит условию" - какому условию?
60 Харлампий Дымба
 
29.09.23
15:45
(56) опечатка - НОК(5,8,9,11) само собой.
61 НафНаф
 
29.09.23
15:48
хотя ладно, раз заменяется на другую, то да, функция Ландау вообще не подойдет
62 Гена
 
гуру
29.09.23
15:50
(58) Похоже, что если нет какой-то 2к из начальных, то пролёты можно и уменьшить.
63 RomanYS
 
29.09.23
15:50
(59) " заменяется на другую"
64 RomanYS
 
29.09.23
15:51
(61) с некоторыми ограничениями подойдёт
65 RomanYS
 
29.09.23
15:53
(58) минимальный набор 1, 4, 5. Порядок естественно не важен
66 uno-group
 
29.09.23
15:56
(21) на следующую и другую это разные формулировки. 33^33 и то не факт
67 Харлампий Дымба
 
29.09.23
16:02
(66) условие "разные" в "разные" не позволяет получить разомкнутую цепочку букв. Они будут крутиться по кругу в рамках своей цепочки.
68 maxab72
 
29.09.23
16:03
2(53) значит берем минимум из количества не пустых тарелок и количества не пустых разрядов, в представлении количества плюшек в двоичном виде.
69 Харлампий Дымба
 
29.09.23
16:07
(68)ага, тоже про это думал. Контрпримеры придумывать задачка тоже интересная. Но опять самое простое: 1,3,4 - 0001,0111,1000. 3 непустые тарелки, 4 непустых разряда и всего лишь 2 полёта.
70 uno-group
 
29.09.23
16:07
(67) Тут не все буквы алфавита нет буквы "Ж" потому цепочка разорвана и буквы могут крутиться как угодно.
Парадигма со всеми буквами звучит так. "съешь же ещё этих мягких французских булочек, да выпей чаю"
Вот для нее ваша формула верна.
71 Харлампий Дымба
 
29.09.23
16:08
к(69) Туплю: 001,011,100 - но суть та же.
72 Харлампий Дымба
 
29.09.23
16:13
(70) ну это такая небольшая была уловка. Буква ж всё-равно имеет свою цепочку, она не может быть сама по себе. Так что  убрав её я все-равно оставил необходимость составлять цепочки из всех 33 букв.
73 uno-group
 
29.09.23
16:26
Что мешает менять букву А на Ж и назад А на последнем круге поменять на любую оставшуюся чтобы фраза не совпала все условия выполнены.
74 RomanYS
 
29.09.23
16:29
(66) именно другую, по факту все буквы разбиты на зацикленные цепочки. Сообщение вернется назад, когда все циклы совпадут, т.е. в НОК от всех длин циклов.
МАксимальное значение этого НОКа (и единственное больше 4000) 4620 = 4*3*5*7*11
Циклов длиной 3 будет 2 штуки, т.е. все буквы будут разбиты на группы- циклы длинами 3+3+4+5+7+11=33
75 RomanYS
 
29.09.23
16:30
(73) так замены на всех шагах одинаковые
76 uno-group
 
29.09.23
16:33
(74) кто сказал что цепочки зациклены и крутятся в 1 сторону? отсутствие 1 буквы их разрывает. Другая не обязательно следующая А-Б-С-Б-С и так по кругу буква другая и все разные
77 RomanYS
 
29.09.23
16:41
(76) все переходы фиксированы, они не могут не зациклиться.
А-Б-С-Б-С такого быть не может, А и С не могут превращаться в одну букву Б
78 Харлампий Дымба
 
29.09.23
16:43
(76) Разные буквы заменяются на разные: это значит что А-Б и С-Б не могут сосуществовать. Иначе разные буквы А и С заменились на одну и ту же - Б
79 uno-group
 
29.09.23
16:53
(77) за счет лишней буквы А и С превратятся в разные буквы в том то и дело если бы букв было бы 33 то несмогли а когда появляеться лишняя они могут превращаться как угодно. Опять же что в условии мешает буквам крутиться между 2 и 3 превращением
80 RomanYS
 
29.09.23
16:57
(79) шифрование подразумевает возможность дешифровки. Как в твоем случае расшифровать строку ББББ?
81 Харлампий Дымба
 
29.09.23
16:59
(76) Но идея с "туда-сюда" очень хороша)
Проблема только в том, что любое колесико, которое будет крутиться туда-сюда должно быть только из 2 букв (или из 3 с "ж", но чтобы она не показывалась). А колесико из двух букв, которое крутится в одну сторону ни чем на экране не будет отличаться от того, которое крутится туда-сюда: смена букв будет такая же. Если же колесико прокрутится больше 1 буквы в одну сторону, то назад уже дороги нет: Петя увидел А-Б-С, тогда С-Б назад уже нельзя сделать, ведь уже было А-Б.
82 RomanYS
 
29.09.23
17:00
(79) Опять же что в условии мешает буквам крутиться между 2 и 3 превращением
Ничто не мешает, но тогда каждые 6 нажатий будешь получать исходную строку, а по условию 4000 раз повторов не было
83 Irbis
 
29.09.23
17:16
(71) Про вариант из (44) что скажешь?
84 Харлампий Дымба
 
29.09.23
17:33
(84) Я ведь честно написал, что у меня нет решения.
Ты можешь попробовать развить свой алгоритм. Наверное, в мысли про медиану, что то есть, но мне не понятно как это поможет правильно бить тарелки.
Вот смотри:
1,2,3,98,100. Ты берёшь третье блюдо, а дальше что? Просто теряешь пролет, и дальше надо ещё 3 раза прилетать:
3: 1,2,0,х?,у?
А надо брать 2: 1,0,1,98,98
85 Bigbro
 
29.09.23
17:38
нужны разложения в суммы.
86 Irbis
 
29.09.23
17:38
1 2 3 98 100
1 2 95 97
1 93 95
1 2
2

Как то так получается
87 Гена
 
гуру
29.09.23
17:43
(86) не надо четвёртое блюдо трогать в первой попытке по 2 булочки, тогда попыток будет всего три.
88 Irbis
 
29.09.23
17:47
(87) Тогда если откуда то брать, а откуда то можно и не брать всё сильно сложнее.
89 Гена
 
гуру
29.09.23
17:45
(88) Да. Сомневаюсь, что есть общий алгоритм.
90 Харлампий Дымба
 
29.09.23
17:53
(85) Нужны. Только их для каждой тарелки вагон. И комбинаций вагон. Так ещё и выбрать оптимум. А ещё учесть, что одна из тарелок может быть  слагаемым. А ещё после каждого пролета стопки меняются и можно заново раскладывать.
А если там 1,100: программа сколько будет 100 раскладывать на слагаемые?
Ну или 1,3,7,15,31,63. Человеку сразу видно что Карлсону придётся помотаться, а вот машине сколько времени понадобится комбинации слагаемых обсчитать?
Ну так-то да, понятно что если мы стопки раскладываем на комбинации слагаемых, то нам скорее всего придётся разложения в суммы делать. Как это сделать оптимально...

(86) Карлсон может не брать с некоторых тарелок плюшки, чтобы оптимизировать стопки под следующие прилёты. Тогда
1)2: 1,0,1,98,98
2)98:1,0,1,0,0
3)1: 0,0,0,0,0
Пробуем надо найти именно лучший вариант.
91 Bigbro
 
29.09.23
17:55
кстати написано что с выбранных. то есть не со всех с каких можно ...
значит можно и не брать.
92 Харлампий Дымба
 
29.09.23
18:01
(89) А я надеялся, что всё уже придумано до нас, и кто-нибудь вспомнит, как это делается...
Но выпечка это, конечно, математически сложная штука: блинная сортировка тоже ищет свой оптимум)
93 Timon1405
 
29.09.23
18:47
(90) думаю что надо идти по степеням двойки: сначала нечетные тарелки, потом кратные 2, потом 4 итд
1    2    3    10    15    98    100
0    2    2    10    14    98    100
0    0    0    8    12    96    100
0    0    0    8    8    96    96
0    0    0    0    0    96    96
0    0    0    0    0    0    0
то есть оценка за [log2(maxN)]+1 точно сможем все собрать. осталось построить контрпример что за [log2(maxN)] нельзя. вертится 1,3,7,15,31,63, но тут я что-то недокрутил
94 RomanYS
 
29.09.23
18:12
(89) если алгоритм есть, то он общий)) Просто он вероятно не простой, в худшем случае это перебор
95 RomanYS
 
29.09.23
18:13
(93) забудьте про степени двойки, они красиво закрывают один частный случай - подряд идущие числа
96 RomanYS
 
29.09.23
18:16
(93) нижняя оценка элементарно доказывается: если у Вас N залет, то в каждый залет вы можете взять или не взять с тарелки итого 2^N-1 вариантов. Если у вас больше исходных сумм - то закрыть их не получится
97 Timon1405
 
29.09.23
18:16
(93) наверное, можно по индукции: пусть мы нашли минимальное K для maxN, тогда для числа maxN*2+1 точно понадобится дополнительный K+1й пролёт
98 Timon1405
 
29.09.23
18:22
(95) в моем примере не все числа подряд. взяв в первом проходе 1 из нечетных чисел, мы получаем точно четные числа везде и по сути сводим задачу к прошлой только с коэффициентом 2. Ваша нижняя оценка из (96) закрывает решение
99 Харлампий Дымба
 
29.09.23
18:32
(98)1,3,5,8.
Взяв в первом проходе 1 из нечетных чисел мы получим 0,2,4,8 и ещё 3 пролёта.
А оптимально будет:
1,0,5,5
1,0,0,0
0,0,0,0
100 RomanYS
 
29.09.23
18:35
(98) я уверен, что всегда можно найти решение по нижней оценке. Но как его найти безе переборов, пока не понимаю. Поэтому про "закрывает решение" пока не согласен
101 Timon1405
 
29.09.23
18:44
(99) давайте определимся: нужно дать алгоритм поиска конкретного минимального пути до 0,0,0,0 по заданному набору или дать алгоритм который за конечное число шагов(зависящее от maxN) приведет к 0,0,0,0 для любого набора из maxN плюшек?
102 RomanYS
 
29.09.23
18:47
(101) для любого неинтересно - это эквивалентно полному набору. Интересен поиск для заданного набора
103 Харлампий Дымба
 
29.09.23
18:51
(93) А что такое maxN? Если количество тарелок, то всегда можно разложить так, что не соберешь меньше чем за maxN - я уже приводил: 1,3,7,15
Если maxN максимальное количество блинов, так
1,100 собирается за 2 пролёта без логарифмов.
(100) Я был бы рад и алгоритму с перебором, уже аж 2 мысли:
слагаемые не повторяются (не смог придумать пример где это понадобилось бы);
одинаковые столбики можно рассматривать как один)
104 Bigbro
 
29.09.23
19:42
раскладываем каждую тарелку на сумму различающихся слагаемых
таким образом чтобы общее количество этих слагаемых со всех тарелок было минимальным. повторы выкидываются/сворачиваются.
так мы получаем целевое значение функции которую надо оптимизировать.
105 ДедМорроз
 
29.09.23
20:05
Насколько я понимаю,разные на разные - это для каждого преобразования.
Мы берём выстраиваем буквы сообщения в алфавитном порядке,потом случайным образом их перемешиваем,исключая только совпадения.
Так как расстановка случайная,то существует только ненулевая вероятность,что мы получим исходную фразу.
Почему должно быть конечное число итераций ?
106 RomanYS
 
29.09.23
20:12
(100) решение по нижней оценке отменяется - в (103) простой контрпример
107 RomanYS
 
29.09.23
20:14
(105) все буквы соберутся в один или несколько циклов. Если циклов несколько, то после НОКа нажатий все совпадут одновременно
108 RomanYS
 
29.09.23
20:19
(103) если не говорить про эффективность, то с перебором всё просто. Взяли все значения и все возможные разницы. Из этого набора перебираем выборки размерностью log2(N), если не нашли подходящей - перебираем выборки на 1 длиннее и т.д. до длины N (тут уже перебирать не надо)
109 Timon1405
 
29.09.23
20:44
жадный алгоритм: расположить числа пирамидкой как дольки шоколада и каждый раз откусывать прямоугольник наибольшей площади. пример
1 3 5 8 минус 10=5*2
0 1 3 3 минус 6=3*2
0 1 1 1
но жадный может ошибаться(
110 Харлампий Дымба
 
29.09.23
21:47
(108) Разбиений каждой стопки из n блинчиков ~ exp(sqr(n)), и в степени количества блюд..
Думал можно проще сделать: берем наименьшую стопку и смотрим все возможные комбинации с других тарелок, потом выбираем наименьшую из оставшихся и делаем то же самое. Ну чистый Тетрис...
Но понял, что не так - в промежуточных случаях столбики могут каждый раз до 1 блинчика уменьшаться и там число рассматриваемых случаев тоже будет ого-го
111 ДедМорроз
 
29.09.23
22:32
(107) все, я понял.
Преобразование задано один раз и по нему выполняется какой-то набор последовательных преобразований.
Мне просто показалось,что на каждом шаге новая функция преобразования.
112 Bigbro
 
30.09.23
07:06
wiki:Разбиение_числа
немножко теории в плюшки закинем. мы работаем с разбиениями, к счастью мы не первые на этом пути и великие уже успели сделать огромную работу )
113 Bigbro
 
30.09.23
07:19
https://neerc.ifmo.ru/wiki/index.php?title=Числа_Стирлинга_второго_рода
а вот еще числа стирлинга, которые видимо тоже имеют отношение к нашей задаче - количество способов разбиения множества блинчиков на тарелках на условно непустые кучки.
это тоже рядом и тоже не то что надо)
114 maxab72
 
30.09.23
08:19
2(113) Нам надо найти минимум числа слагаемых, из которых можно составить все числа набора. Где-то что-то подобное встречал, но вспомнить не могу. Там точно были не степени двойки, они не дают оптимального ответа. ЕМНИП сумма всех этих слагаемых, должна была быть равна максимальному числу из набора.
115 RomanYS
 
30.09.23
09:37
(114) "должна была быть равна"
вероятно не очень точная формулировка. Точнее будет существует такое решение, для которого выполняется это условие.
Например для набора 1, 2, 4 три подходящих ответа:
[1, 1, 2], [1, 2, 2], [1, 2, 4]
116 maxab72
 
30.09.23
09:44
(115) Еще ответы [1, 2, 3], [1, 1, 3], [1, 1, 4]
117 RomanYS
 
30.09.23
09:58
(116) Точно!
(53) кстати этот пример показывает зачем могут быть нужны одинаковые слагаемые: если нужно оптимизировать ещё и сумму набора, то без учета одинаковых не обойтись. И да - всегда существуют решения с разными, в данном случае их даже два [1, 2, 4], [1, 2, 3]
118 Харлампий Дымба
 
30.09.23
12:12
(114) Нет. Ну т.е. решение с суммой слагаемых в n конечно есть всегда - брать всегда по одеому блину со всех непустых тарелок- но сумма слагаемых оптимума не всегда равна n.
Пример: 1,3,5,8
119 RomanYS
 
30.09.23
12:31
(118) 1+2+5
120 Харлампий Дымба
 
30.09.23
13:05
(119) Согласен. Но надо убедиться. Потому что из этого следует, что одно из разбиений максимума будет оптимумом
121 Харлампий Дымба
 
30.09.23
14:35
Проблема оптимума по количеству слагаемых в том, что он допускает одинаковые слагаемые. И тогда нам надо рассматривать разбиения на кванты (единицы или ещё какую мелочь, надо подумать ещё). А таких разбиений для числа очень много. Например 2,4,8 нельзя(?) оптимально разложить так, чтобы сумма слагаемых был 8 и не было повторов: только 2+2+4.
Но интересно, что всегда существует оптимум, в котором слагаемые не повторятся (строгое разбиение). Правда тогда это разбиение не максимального числа  плюшек, а суммы всех плюшек (лишние блюдца с одинаковым количество плюшек мы по договорённости сразу уберём со стола).
Попробую показать, поправьте если ошибаюсь:
Для наглядности можно представить наше будущее  решение в виде таблицы значений - строки-ходы и колонки -блюдца . Итог по колонке - количество плюшек на блюдце. В ячейке каждой строки - либо ноль, либо количество плюшек этого хода. Оптимум - поиск таблицы с наименьшим количество строк.
1. Утверждение: порядок ходов не важен - следующий ход не зависит от предыдущего.  В том смысле , что если мы нашли оптимум, то все перестановки ходов в этом оптимуме - тоже будут оптимумом (знаменитое «от перемены мест слагаемых...»).
2. Тогда мы можем отсортировать наши ходы по количеству  плюшек, забираемых с каждого блюда - k.  Пусть есть две строки с одинаковым количеством плюшек, тогда рассмотрим последовательно все колонки. Если в колонке 0,k или k,0 (то есть на одном ходе с этого блюдца  берем k плюшек, а на другом не берём), то мы просто переставим ход для этого блюдца на k,0 (то есть забираем сразу).  Если в колонке 0,0 - она нам тут неинтересна, на эти 2 хода не влияет. Если после перестановок (0,k)->(k,0) в в двух строках не осталось колонок (k,k )- то мы можем удалить второю строку (оптимум всё ближе). Если есть  - то разложим в 0,2k (то есть на первом ходу это блюдце пропускаем, а на втором - берём двойное количество). После этого преобразования количество строк не изменилось, сумма по колонке не изменилась, принцип - «одна строка - одно количество плюшек» тоже сохранен
3. Ну и повторяем п.2  Ведь после нашего преобразования возможно у нас стало 2 строки с ходом 2k - их также объединяем в одну если можно, или преобразуем  в две строки с ходом 2k и 4k
В худшем случаем мы просто не изменим количество колонок, т.е для 2,4,8 разложение 2+2+4 мы превратим в в 2+4+8. В лучшем - избавимся от нескольких строк.
122 Bigbro
 
30.09.23
14:46
допустим у нас есть отсортированное по количеству плюшек множество блюд.
забрать максимум - плохая стратегия потому что в плохом раскладе будем забирать только по 1. обнулится только одна старшая тарелка.
если забрать предыдущее по количеству плюшек количество - то у нас не только обнулится одна тарелка, но есть шанс что остаток на большой тарелке совпадет с одной из меньших. и мы сможем обнулить больше чем 1 на след шаге.
но зачем брать именно предыдущую?
надо забирать такую которая не только обнулит максимум - например несколько тарелок по 3 плюшки - но и максимизирует количество совпадений у уменьшившихся больших номеров с теми что меньше... то есть если мы забираем 3, то у старшей 5ки останется 2, и у нас как раз есть блюдо на котором 2...
надо думать дальше в эту сторону
123 Bigbro
 
30.09.23
14:48
и да, есть ощущение что ходов не обнуляющих ни одну тарелку быть не должно.
может оно и неверное но тогда нужен пример.
124 Харлампий Дымба
 
30.09.23
15:53
(119) А вот такое посмотри, пожалуйста: 11,100,101,103,107 вместо 1+3+7+100 есть с суммой 107 за 4?

(124) Проблема в том, что для разных оптимумов могут быть свои ограничения и выводы, действующие для одного и недействующие для другого.
Про обнуление надо покрутить, да.
125 Харлампий Дымба
 
30.09.23
17:01
Из максимального вычитаем минимальное и обносим все блюдца с которых это можно взять. Повторяем.
126 Харлампий Дымба
 
30.09.23
17:08
к(125) поторопился обрадоваться(
к(124) 11,100,101,103,107 можно разложить в сумму:
96: 11,4,5,7,11
7: 4,4,5,0,4
4: 0,0,1,0,0
1: 0,0,0,0,0
127 RomanYS
 
30.09.23
17:32
(123) как выше заметили от порядка шагов результат не меняется. Поэтому при определённом порядке шагов обнуления может не быть на каждом шаге. С другой стороны будет порядок при котором будет выполняться это условие
128 Харлампий Дымба
 
30.09.23
18:09
в (126) как раз иллюстрация (11,100,101,103,107) - если подбираем оптимум из разбиения максимума (107), то у нас 1+4+7+96 и ни одно из этих слагаемых не даёт пустую тарелку своим ходом, другого разбиения в 107 не будет(?).
Но если другого разбиения нет, то тогда в таких оптимумах выбор минимального обноса (1 шт) не равен минимальному количеству плюшек на тарелке (11 шт). А с учетом возможности равенства слагаемых...

Но возможно для каждой раскладки всегда существует оптимум, при котором обнуление на каждом ходе.
129 Bigbro
 
01.10.23
07:41
окей, обнуление либо уравнивание. потому что уравнивание это обнуление доп тарелки на следующий ход.
требование обнуления слишком сильное.
контрпример нужен что уравнивание - не всегда лучшая стратегия.
пока я бы пошел с самого большого блюда вниз проверил предыдущее - если мы его снимем - станет ли равен остаток на большом одному из мелких. если да забираем (таким образом мы зануляем сразу одно блюдо и делаем равенство - чтобы на след ход занулить сразу 2), если нет переходим к третьему проверяем аналогично - обнулится ли вместе с ним кто то еще и станет ли один из остатков от больших равен одному из малых.
и так далее.
проверим?
130 Bigbro
 
01.10.23
07:42
выглядит как добротная стратегия, наверняка не оптимальная но уже вполне рабочая.
131 Bigbro
 
01.10.23
07:44
хотя вот в этом же примере 11 100 101 103 107
мы не найдем ничего и надо будет придумывать другой ход на этот случай. )))
132 Bigbro
 
01.10.23
07:53
тут опять же варианты перебирать от минимальной тарелки вниз с поиском тарелок которые можно уравнять.
или вверх с единицы.
по идее лучше вниз.
тогда мы как раз находим 7, чтобы 100 107 уравнять
находим 6 чтобы уравнять 107 101 (но 6 не используется, потому что 7 уже портит эту пару)
4 - для 107 103 11 (откуда вычли 7)
3 - 100 103
2 и 1
133 Харлампий Дымба
 
01.10.23
12:27
(129) Стратегия же должна покрывать случай когда стопки - числа подряд. Ну там 1,2,3,4,5,6,7,8..

Пока из общего обсуждения и мыслей в (24) и (109) мне видится  такая:
Находим стопку, равную или ближайшую сверху к полуразности между максимальной и минимальной стопкой, и обносим всё ей. Повторяем.
134 ДедМорроз
 
01.10.23
13:17
Когда числа подряд и с единицы,то степени двойки дают оптимальный вариант.
135 uno-group
 
02.10.23
08:59
(82) В условии нет что повторов не было. может было 3 движения вперед и дальше крутиться 3-2 и так до бесконечности. Шифрование как бы подразумевает, что зашифрованнная фраза не должна повторять то что шифруется. Правильная задача под ваше решение должна содержать букву "Ж" и спрашивать когда Петя увидит повторяющуюся комбинацию.
136 RomanYS
 
02.10.23
09:25
(135) мы наверное про разные задачи.
В нашей повторов не было : "...и продолжил нажимать F2 - 3999 раз, но так и не увидел больше исходную фразу."

"Шифрование как бы подразумевает, что зашифрованнная фраза не должна повторять то что шифруется." - это верно только для однократного шифрования
137 Харлампий Дымба
 
02.10.23
14:37
(135) Вроде в (81) расписал, что как бы ты не расставлял буквы по цепочкам - 4000 раз не повторить фразу ты сможешь только для определенных длин цепочек: (3,3,4,5,7,11) и (4,5,6,7,11), все остальные либо дают повтор раньше 4000, либо содержат цепочку из одной буквы, что не подходит по условию. Цепочки определены заранее - они не меняются после каждого шифрования. Можно придраться, что это строго не написано, но ведь если это не так, то и задачи как бы нет)

(136) Слушай, ваша с uno-group дискуссия натолкнула на  одну прелестную вещь: если бы Вася вместо фразы про булки написал "МИСТА" ответ в задаче был бы тем же - 620.

Ну и чтоб 2 раза не писать: в (133) - "полуразность" читать как "полусумма"
138 Харлампий Дымба
 
02.10.23
14:42
Ну второй вариант задачи посложнее: если бы Вася написал "ВАСЯ", то сколько раз жать кнопку Пете в худшем случае?
139 RomanYS
 
02.10.23
14:51
(138) 3640?
140 Харлампий Дымба
 
02.10.23
14:55
(139) Нет. Классно, да?
141 RomanYS
 
02.10.23
15:03
(140) больше?
142 Харлампий Дымба
 
02.10.23
15:12
(141) Да, конечно. Если некогда решать, то наиболее вероятный ответ в (60).
Но утверждать не могу, потому что надо тогда смотреть НОК() для всех перестановок (С из n по 4) для каждого разбиения числа 33 на n слагаемых - маловероятно, но возможно что-то и превысит то, что в (60).
143 RomanYS
 
02.10.23
15:16
(142) понял, идея у меня была правильная. Но я вместо 9*11 взял 7*13