Сохранен 41
https://2ch.hk/b/res/312574402.html
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Сможет ли двачер-наносек решить детскую задачку? Предлагаю размять мозгу и порешать школьную олимпи

 Аноним 04/11/24 Пнд 17:54:37 #1 №312574402 
image.png
image.png
Сможет ли двачер-наносек решить детскую задачку?

Предлагаю размять мозгу и порешать школьную олимпиаду по информатике. Задача такая:

В гостинице для жирафов администрация хочет запастись подушкам так, чтобы удовлетворить потребности любого своего возможного постояльца. Известно, что жирафам в зависимости от длины их шеи нужно сложить стопку подушек (в стопке одна или несколько подушек) толщиной от 1 до n сантиметров. При этом администрация хочет обойтись как можно меньшим числом подушек, а среди наборов подушек, удовлетворяющих этим требованиям, администрация выберет набор минимальной
суммарной толщины, чтобы он занимал минимальный объём в шкафу. Помогите администрации составить нужный набор подушек, позволяющий получить стопку любой высоты от 1 до n сантиметров включительно.

Например, при n = 9, нужно выплюнуть 1; 2; 3; 3 в любом порядке, потому как
1 = 1
2 = 2
3 = 3
3 + 2 = 5
3 + 3 = 6
3 + 3 + 1 = 7
3 + 3 + 2 = 8
3 + 3 + 3 = 9

За решение n <= 20 дают 20 штук баллов, а за n <= 1000 - 40.

Кто использует аналогичные монетки с литкода или любую другую помощь из зала, тот пидор
Аноним 04/11/24 Пнд 17:58:17 #2 №312574542 
Ваще в рот ебал если честно
Аноним 04/11/24 Пнд 17:58:47 #3 №312574563 
glif-2ch-vadim1337-avtm1waw9q3wq6n6cz2xj71a.png
Ебучий бототред
Аноним 04/11/24 Пнд 17:59:14 #4 №312574587 
>>312574402 (OP)
>при n = 9, нужно выплюнуть 1; 2; 3; 3 в
Почему не 9 по 1?
Аноним 04/11/24 Пнд 18:02:33 #5 №312574708 
>>312574587
Потому что оп говноед
Аноним 04/11/24 Пнд 18:04:33 #6 №312574787 
>>312574587
Противоречит условию.
[mailto:Sage] Аноним 04/11/24 Пнд 18:09:15 #7 №312574977 
>>312574787
Выдавил катях на твой пиздливый еблет, хуйло.
Аноним 04/11/24 Пнд 18:09:37 #8 №312574993 
>>312574587
Потому что все от 1 до n, а не только n. Иначе бы задача решалась в одну директиву.
Аноним 04/11/24 Пнд 18:11:31 #9 №312575071 
>>312574993
Ай, карамба, мля. Неправильно прочитал. Пушо сильно длинно, условия предпологает оптимальный результат
Аноним 04/11/24 Пнд 18:12:41 #10 №312575116 
>>312574993
Не понял. Для любого n минимальная толщина будет n, и ее проще всего набрать из подушек по 1 см
Аноним 04/11/24 Пнд 18:13:47 #11 №312575162 
>>312575071
Критерий оптимальности?
Аноним 04/11/24 Пнд 18:15:13 #12 №312575235 
>>312574402 (OP)
Опять ты с нейронкой? Да мы уже поняли, что она умнее среднего человека, чё ты дальше соль на раны сыплешь.
Аноним 04/11/24 Пнд 18:16:06 #13 №312575263 
>>312575235
Нет, не я с нейронкой носился. ГПТ обосрется, можете проверить.
Аноним 04/11/24 Пнд 18:18:48 #14 №312575374 
>>312575162
> Критерий оптимальности?
Меньшее кол-во элементов в массиве
Аноним 04/11/24 Пнд 18:20:24 #15 №312575443 
>>312575374
Все, увидел, а то в глаза долблбсь
Аноним 04/11/24 Пнд 18:24:02 #16 №312575574 
>>312574402 (OP)
Говно, для начала условие нормально сформулируй. Я ебал догадывваться о чем ты.
Аноним 04/11/24 Пнд 18:27:19 #17 №312575706 
>>312574402 (OP)
>1; 2; 3; 3
>3 + 3 + 3 = 9
Слышь, шакал бля, откуда ты третью подушку толщиной 3 взял?
Аноним 04/11/24 Пнд 18:27:44 #18 №312575724 
1652790305720.png
>>312574402 (OP)
Решение задачи по подбору количества подушек для жирафов на Python:

Для данной задачи мы можем использовать жадный алгоритм, который будет добавлять подушки с толщиной, уменьшающейся с каждой итерацией, пока не достигнем необходимой максимальной высоты.

Вот пример кода, который решает данную задачу:

def get_pillow_stack(n):
pillows = []
current_height = 0
while current_height < n:
# Определяем следующую толщину подушки
next_pillow = min(n - current_height, current_height + 1)
pillows.append(next_pillow)
current_height += next_pillow
return pillows

# Пример использования
n = 9
pillow_stack = get_pillow_stack(n)
print("Подушки:", pillow_stack)
print("Общая толщина подушек:", sum(pillow_stack))


Пояснение кода:
- Мы начинаем с текущей высоты current_height, равной 0.
- На каждой итерации добавляем подушку с толщиной, равной наименьшему из двух значений: разница между n и current_height, или current_height + 1.
- Процесс продолжается, пока не достигнем общей высоты n.
- В конце мы возвращаем набор подушек и выводим их общий вес.

Данный алгоритм позволяет создать минимальный набор подушек, необходимых для достижения всех высот от 1 до n.
Аноним 04/11/24 Пнд 18:31:55 #19 №312575882 
>>312575574
У тебя есть множество N {1, 2...n}. Тебе нужно подобрать такое множество, чтобы для каждого элемента N в нем существовало субмножество, сумма элементов которого была бы равна этому элементу. С млекопитающими проще, не?
Аноним 04/11/24 Пнд 18:33:00 #20 №312575922 
>>312575706
Ой! Я еблан! 3 + 3 + 2 + 1!
Аноним 04/11/24 Пнд 18:37:26 #21 №312576072 
>>312575882
Так понятнее, но я уже сам понял, просто говнотекст ОПа написан так всрато что сразу не понятно о чем он.
Аноним 04/11/24 Пнд 18:40:24 #22 №312576167 
>>312574402 (OP)
>Например, при n = 9, нужно выплюнуть 1; 2; 3; 3
А ещё можно 1; 2; 4; 2
Думал 3 минуты и решил у себя в голове. Делаешь 1, 2, 4, 8, 16 и так далее. Последнее 2^k такое, что 2^(k+1)-1 <= n, а 2^(k+2)-1 уже больше n. Другими словами сумма подушек такая, что она ещё не превышает n, но если добавить очередную подушку ещё в 2 раза больше, то сумма уже превысит n. На компьютере k можно вычислить как битовую длину числа n+1 и минус 2. Честно говоря уже подзабыл, как это делать, так что в реале я бы посчитал это позорным циклом с целочисленным делением на 2. После этого, если n имеет вид 2^(k+1)-1, то моя работа на этом закончена, а если n больше, то добавляю ещё одну подушку n-(2^(k+1)-1)
Аноним 04/11/24 Пнд 18:42:20 #23 №312576211 
>>312575882
Ебал я в рот эту теорию множеств ебаную.
Аноним 04/11/24 Пнд 18:45:06 #24 №312576311 
>>312575724
Пиздец, сраный робот выдал по сути то же самое решение, что и я, но в коде это выглядит намного лучше, и человеческим языком это объяснено намного понятнее
мимо >>312576167
Аноним 04/11/24 Пнд 18:51:16 #25 №312576523 
aNOqWCEKHeM.jpg
scale1200.png
>>312576311
Это конец. Роботы превзошли людей и в высоком искусстве, и в умственной работе. Теперь человеческое искусство это рисовать сойджаков и прочие дегенеративные мемы. Вот в этом бездушная машина не может нас заменить ПОКА ЧТО. А человеческая работа это откачивать говно. Тут тоже пока не придвидется наступление искуственного интелекта
Аноним 04/11/24 Пнд 18:57:45 #26 №312576757 
>>312576167
Как ты к этому пришел? Чувствую себя дегенератом пиздец.
Аноним 04/11/24 Пнд 19:07:18 #27 №312577062 
>>312576757
Забей, я понял.
Аноним 04/11/24 Пнд 19:25:21 #28 №312577656 
>>312574402 (OP)
Детская задача хи хи хи. Уверен пидорас который придумал месяцами мозговал. Иди нннахуй. Не буду играть в твою игру. Сдался твоя задача.
Аноним 04/11/24 Пнд 20:39:22 #29 №312580299 
>>312574402 (OP)
Ответ буквально прописан в примере. Числа 1, 2, 3, 3 дают составить любую высоту 0-9, то есть любое кол-во единиц. Добавив 10, 20, 30, 30 к этому набору получим любую высоту до 99.
Проще говоря - по 4 подушки на разряд числа N. Нужно только знать максимальный возможный разряд N.
Ответ: Возьму N=9999, тогда набор - 1, 2, 3, 3, 10, 20, 30, 30, 100, 200, 300, 300, 1000, 2000, 3000, 3000.
Гони мои 40 баллов, дядя.
Аноним 04/11/24 Пнд 21:28:00 #30 №312582065 
>>312580299
Нужно в первую очередь минимизировать число подушек, и только потом их суммарную высоту. У тебя 16 подушек, больше оптимального для 9999
Аноним 04/11/24 Пнд 21:34:02 #31 №312582290 
goku.gif
>>312576523
>искуственного интелекта
Пиздец. И такие люди рассуждают об искусственном интеллекте, о судьбе экономими и культуры...
Аноним 04/11/24 Пнд 21:35:02 #32 №312582330 
>>312582290
*экономики
Сорри, миссклик
Аноним 04/11/24 Пнд 21:40:27 #33 №312582540 
>>312575724
>>312576167
Молодцы. Но обратите внимание, даже после оптимизации по двум параметрам всё ещё существуют несколько правильных ответов. Поэтому предлагаю усложнить. Теперь ответ надо оптимизировать по трём параметрам! Из всех наборов минимальной высоты и количества подушек надо выбрать такой, чтобы его максимальная подушка была минимальной. Вот так! Чтобы 1 2 3 3 подходило, а 1 2 2 4 нет. Слабо?
Аноним 04/11/24 Пнд 21:58:11 #34 №312583109 
>>312582540
У меня есть решение на это, но оно костыльное.
Аноним 04/11/24 Пнд 22:02:30 #35 №312583257 
>>312574402 (OP)

>Сможет ли двачер-наносек решить детскую задачку?

Схуяли я должен уметь решать подобную ебалу. За 12 лет работы ни разу ничего даже близко подобного делать не приходилось.
Аноним 04/11/24 Пнд 22:17:24 #36 №312583731 
>>312574402 (OP)
Обесните дебилу 115-айсикью условие. Например, нужно получить все целые высоты от 1 до 9 используя как можно меньше подушек разной высоты, так? И можно чтобы было несколько подушек одинаковой высоты?
Тогда в этом примере:
1 = 1
2 = 2
3 = 3
3 + 2 = 5
3 + 3 = 6
3 + 3 + 1 = 7
3 + 3 + 2 = 8
3 + 3 + 3 = 9
в последней строке лишняя 3, нужно
3 + 3 + 2+1 = 9
Аноним 04/11/24 Пнд 22:57:27 #37 №312584933 
>>312583731
все правильно ты понял, оп ошибся
Аноним 05/11/24 Втр 00:01:32 #38 №312586646 
>>312582540
Это не так сложно. Во-первых, следуем стандартному алгоритму. Например для 13 у нас получится 1 2 4 6. Смотрим на последние 2 числа. Если самое последнее оно же самое большое, то это уже ответ в том числе и на "усложнённую" задачу. Дополнительно оптимизировать там больше нечего. Аналогично, если последние 2 числа равны, или последнее на 1 меньше предпоследнего. 1 2 4 3 это наименьшая комбинация для 10, 1 2 4 8 7 это наименьшая комбинация для 22, и так далее. Предлагаю вам самим для себя доказать все вышеперечисленные факты.

Однако, если последнее число меньше предпоследнего хотя бы на 2, то между ними становится возможным перераспределение поровну. Так для нашего n=9 мы имеем 1 2 4 2, берём 4 2, и превращаем их в 3 3. Итого 1 2 3 3. При n=8 имеем 1 2 4 1, здесь 4 1 не поделятся поровну, поэтому получается 2 3, итого 1 2 2 3. Почему это работает, почему это даёт лучший результат, почему распределяются именно последние 2 числа, и почему никогда ни при каком n не будет работать распределение между тремя числами - опять таки со всеми этими вопросами предлагаю разобраться вам самим.

Я сам для себя всё доказал, но объяснять это долго. И так большой пост получился.
Аноним 05/11/24 Втр 00:09:22 #39 №312586879 
gVBOBBBI8bHdlY2Yjsv1ibulR8pmEvEF68wdxG1wP0mP4ksevfHfIv0rvk5AJciD97Xl-4zxISMuitAht4UAIeM.jpg
>>312583731
Я прямо скажем не математик, но ты же пользуешься десятеричной системой счисления
Аноним 05/11/24 Втр 00:14:08 #40 №312587037 
KRVK9qk1a8j434cYQ7gIuR7JFzXaIfXY7kEPrfTY9qKavVbrMa0aTUPkCyLh6W4osPzKsbe6h3o-rwmAefi4x.jpg
>>312583731
Ты многозначные цифры в своём примере где потерял? Где десять, где двадцать, где тридцать?
Если не прав пусть эксперты двача поправят, желательно с пруфами.
Аноним 05/11/24 Втр 00:22:47 #41 №312587286 
KRVK9qk1a8j434cYQ7gIuR7JFzXaIfXY7kEPrfTY9qKavVbrMa0aTUPkCyLh6W4osPzKsbe6h3o-rwmAefi4x.jpg
Я, оно, алкаш алкашом, но в школе учился строго на отлично. Пускай после выпуска я поступил на гуманитарное направление и математика мне там была надобна как собаке пятое колесо, но глядя на то что ты выложил я не могу припомнить ни одной аналогии ни с математикой, ни с геометрией, ни с черчением, ни с вычислительными системами.
comments powered by Disqus

Отзывы и предложения