S>ИМХО, это решение неверно. Непонятно, почему нам удасться закрыть хотябы один S>диапазон вида [kn, (k+1)n].
S>
S>даже если не закрывать всех чисел в текущем диапозоне, а переходить к следующему, то с каждым названным числом мы будем закрывать числа во всех диапозонах впереди текущего — рано или поздно закроем все и придется двигаться назад.
S>Всегда есть некоторое простое число, которое больше всех названных чисел. Оно не покрыто не одним числом. S>А почему его можно покрыть линейной комбинацией этих чисел, совершенно непонятно.
меня не интересуют простые числа, я не раскладываю их на множители
любое хоть простое хоть не простое число войдет в один их диапозонов [kn, (k-1)n) и будет закрыто при переборе максимум n чисел из диапозона [n, number-1].
мы можем использовать числа несколько раз, т.е.
для [n, 2n) и [2n, 3n)
2n = n + n
2n + 1 = n + (n + 1)
2n + 2 = n + (n + 2)
...
2n + (n — 1) = n + (n + (n — 1))
ну и общий случай [kn, (k-1)n)
kn = n + n + .... n k times
kn + 1 = n + n + .... + n + 1
Первый делит пирог на 3 части.
Два других юзера делают заявки на полученные куски.
Если заявки разные, каждый берет свой кусок — задача решена.
Если заявки совпали:
--Эти два юзера делят "конфликтный" кусок между собой.
--Делают заявки на двух оставшихся кусках.
----Если заявки совпали, делят "конфликтный" кусок между собой — задача решена.
----Если заявки разные, делят каждый свой заявленный кусок с первым юзером.
Алгоритм деления с заявками можно положить на любое (n) количество юзеров:
Первый юзер делит на n частей.
Далее каждый "конфликтный кусок" делятся на n-1 частей между m юзерами. m (1<m<n) — это количество претендентов на кусок. Каждый из этих m юзеров получает разную долю (или одинаковую, если m=n-1). Остальные куски ("конфликтные" и не только) делятся, с учетом: кто сколько долей уже имеет.
Итд.
Здравствуйте, Максим Алексейкин, Вы писали:
МА>может коряво объясняю, смысл: если закрыли (n+c), то закрыли все (kn + c) где k from [2, бесконечность], а c константа
Да. Только почему будут названы хотя бы два числа стоящих рядом?
Пример: всегда называть числа делящиеся на 4.
(Я понимаю, что в этом случае задача сводится к исходной.)
А если каждое следующее число будет, скажем, (n! + 1), где n > 3. Или что-то в этом роде..?
Здравствуйте, Smal, Вы писали:
S>Здравствуйте, Максим Алексейкин, Вы писали:
МА>>может коряво объясняю, смысл: если закрыли (n+c), то закрыли все (kn + c) где k from [2, бесконечность], а c константа S>Да. Только почему будут названы хотя бы два числа стоящих рядом? S>Пример: всегда называть числа делящиеся на 4. S>(Я понимаю, что в этом случае задача сводится к исходной.)
S>А если каждое следующее число будет, скажем, (n! + 1), где n > 3. Или что-то в этом роде..?
да наздоровье, главное, что больше n чисел не назовеш, двигаясь только вперед конечно.
как только назовешь n-ное по счету (уникальное и не выводимое из предыдуших) вперед двигаться будет некуда.
(на самом деле меньше чем n)
(n! + 1) = kn + c — это всегда выполнится при некоторых k и c, где c < n.
Хм. Я еще раз перечитал первое сообщение и понял, что изначально неправильно понял про заполнение интервалов.
Теперь все стало ясно. Мои извинения, что так долго тормозил.
Здравствуйте, Максим Алексейкин, Вы писали:
МА> МА>ваше решение в студию
Я основывался на аналогии с Диофантовыми уравнениями.
Пусть среди названых чисел будут два взаимно простых числа a и b.
(В случае, если все числа имеют некоторый общий делитель, задача сводится к исходной).
Так как НОД(a,b) = 1, то существуют M и N, такие что aM + bN = 1.
Одно из чисел M и N будет отрицательно. Пусть это будет M.
Тогда любое число из промежутка [-a^2M, -a^2M + a] представляется в виде
-a^2M + (aM + bN) * k = aM(k - a) + bN, k <= a.
Ну, а для следующих промежутков просто прибавляется a.
G>>5b. Кусок замороженного спирта в бочке с пивом. Что станет с уровнем жидкости, когда спирт весь растает? (не понмню откуда)
К>Объём тающего спирта увеличивается, а объём охлаждаемой воды — уменьшается (до 4°С), затем снова увеличивается. К>Объём водно-спиртовой смеси — меньше объёмов каждого из компонентов. К>При растворении спирта выделяется тепло. К>Бочка может быть термостабилизированной или термоизолированной. Колебания объёма могут быть изобарическими или сопровождаться колебаниями давления. При этом может затрачиваться разное количество энергии (одно дело пробулькать водяной затвор, другое — деформировать бочку, третье — сатурация или десатурация пива углекислым газом).
К>В общем, идёт довольно затейливый процесс, суммарный эффект варьируется и от количества веществ, и от начальной температуры, и от других условий.
Плавающий спирт порядочно торчит над пивом, а когда растает растечется равномерным слоем, т.е. уровень повыситься
Здравствуйте, rm822, Вы писали:
R>Плавающий спирт порядочно торчит над пивом, а когда растает растечется равномерным слоем, т.е. уровень повыситься
Пиво охладится за счёт таяния спирта и сожмётся, т.е. уровень понизится.
Объём спирто-водяного раствора меньше, чем сумма объёмов жидкого спирта и воды (при той же температуре), т.е. уровень опять понизится.
При растворении жидкого спирта в воде выделяется тепло, пиво нагреется, т.е. уровень повысится.
Растворимость углекислого газа в спирто-водяных растворах разной концентрации и разной температуры тоже разная — если произойдёт десатурация, то снова объём понизится.
Скомпенсируют ли эти колебания исходное повышение уровня — это вопрос.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Здравствуйте, ghost92, Вы писали:
G>>Здравствуйте, Grammer, Вы писали:
G>>>7. У вас есть 8 с виду одинаковых монет, одна из которых, тем не менее, фальшивая. Фальшивая монета чуть тяжелее, но во всем остальном идентична настоящим. У вас также есть, в лучших традициях жанра, весы с чашечками, как у богини правосудия. За какое минимальное число взвешиваний можно определить фальшивку? (популярная задача) G>>2 достаточно. можно и с 9ю монетами справиться.
AG>2 недостаточно. 8->4->2. Итого 3 сравнения.
Более чем
1е взвешивание 3,3,2
2е взвешивание 1,1,1 или 1,1
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Интересные задачки для программистов
От:
Аноним
Дата:
16.11.06 07:43
Оценка:
Здравствуйте, seafresh, Вы писали:
S>Здравствуйте, Grammer, Вы писали: G>>25. У вас есть зажигалка и веревка. Если веревку поджечь с конца, то она вся сгорит за полчаса. Как отмерить, при помощи этих двух предметов 15 минут? Важное обстоятельство: Веревка горит неравномерно, где-то быстрее, где-то медленнее. (очень популярная задача)
S>Поджечь с двух сторон, как только вся веревка сгорит пройдет 15 минут.
но веревка ведь горит не равномерно? разве ваше решение верно?
Здравствуйте, Аноним, Вы писали:
S>>Поджечь с двух сторон, как только вся веревка сгорит пройдет 15 минут.
А>но веревка ведь горит не равномерно? разве ваше решение верно?
конечно верно, ведь суммарно вся она сгорит в 2 раза быстрее
30
15 15
+----------+------------------+
это часть длиннее, но горит быстрее
Здравствуйте, Arioch, Вы писали:
A>On Wed, 01 Feb 2006 19:46:41 +0300, vitaly_spb <19231@users.rsdn.ru> wrote:
>> А>Уменьшится. Все-таки плотность кирпича больше плотности воды, поэтому >> будучи в лодке, он вытеснит больше воды, чем сам, пойдя ко дну. >> >> А почему так можно поподробнее?
A>A куда подробнее ?
A>Плавающий предмет вытесняет воду равную своему весу. Утонувший — равную A>своему объему.
как понять эту фразу? сколько в итоге воды вытеснится массой?
A>Сравни сколько воды вытеснит плавающий и утонвший кирпич. Чем больше воды A>вытеснено — тем выше уровень A>-- A>Отправлено M2, революционной почтовой программой Opera: A>http://www.opera.com/mail/
Здравствуйте, Grammer, Вы писали:
G>1. Даны 2 буфера фиксированной длины. В начале каждого лежат данные (строчки текст), дальне до конца нули. Поменять строчки местами и перевернуть их задом на перед, так, чтобы в итоге нули опять находились в конце, а текст — в начале. (Microsoft)
Здравствуйте, seafresh, Вы писали:
G>>22. Стандартный способ "честного" деления пирога: первый участник делит, второй выбирает себе один из кусков, оставшийся кусок достается первому. Что делать если участников 3? (Мартин Гарднер, чтоли?)
S>1-ой делит на две части, 2-ой делит любой кусок на две части, 3 выбирает себе любой кусок от последнего деления, оставшийся забирает 2-ой. S>2-ой делит на две части кусок от первого деления и т.д. после трех таких процедур у каждого будет по 2 куска.
все это глупости. пихаем торт в мясорубку, и каждому выдаем по половине (трети, четверти, и т.д.) от того что получилось
I'm the hero I'm back
With weapons and with magic spells
Здравствуйте, Crab, Вы писали:
C>все это глупости. пихаем торт в мясорубку, и каждому выдаем по половине (трети, четверти, и т.д.) от того что получилось
Тот, кто облизывает мясорубку, получит преимущество.
Ну да, я бы сказал, что после первого хода любые N-1 ходов закроют всё на "бесконечности", то есть с числа, максимального из всех ранее названных и придётся двигаться назад.