|
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
|
|
Шары и коробки21.04.2009, 20:34. Показов 13311. Ответов 18
Метки нет (Все метки)
Шары и коробки
(Время: 1 сек. Память: 16 Мб Сложность: 52%) У вас имеется N выстроенных в ряд коробок, A красных и B синих шаров. Все красные шары (аналогично и синие) идентичны. Вы можете класть шары в коробки. Разрешается размещать в коробках шары как одного, так и двух видов одновременно. Так же разрешается оставлять некоторые из коробок пустыми. Не обязательно класть все шары в коробки. Требуется написать программу, которая определяет количество различных способов, которыми возможно заполнить коробки шарами. Входные данные Входной файл INPUT.TXT содержит целые числа N, A, B. (1 <= N <= 20, 0 <= A, B <= 20) Выходные данные В выходной файл OUTPUT.TXT выведите ответ на задачу. INPUT.TXT OUTPUT.TXT 1 1 1 4 2 1 1 9
0
|
|
| 21.04.2009, 20:34 | |
|
Ответы с готовыми решениями:
18
Шары и коробки =) Комбинаторика(шары и коробки) Шары разные, коробки одинаковые, сколько способов |
|
|
|
| 21.04.2009, 20:46 | |
|
> Требуется написать программу, которая определяет количество различных способов, которыми возможно заполнить коробки шарами
Грубо говоря, задача сводится к элементарному вычислению выходного значения по трём входным числам. Тебе осталось найти: - математика, который понимает в комбинаторике и напишет тебе формулу решения - программиста, который по этой формуле напишет программу. Единственная сложность - написать процедуру подсчёта факториала
0
|
|
|
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
|
|
| 21.04.2009, 20:47 [ТС] | |
|
0
|
|
|
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
|
|
| 21.04.2009, 20:50 [ТС] | |
|
0
|
|
|
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
|
|
| 21.04.2009, 21:55 [ТС] | |
|
Ну кто нибудь, попытайтесь решить...
0
|
|
|
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
|
||||||
| 22.04.2009, 00:30 | ||||||
0
|
||||||
|
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
|
|
| 22.04.2009, 05:59 [ТС] | |
|
Спс тебе Humanitis, но задача уже на 3-ем тесте ошибку вадала...
0
|
|
|
|
|
| 22.04.2009, 13:55 | |
Сообщение было отмечено как решение
Решение
Собственно, вот чегонаши математики родили. Логику решения я понял и мне она кажется правильной. Единственно, я не разбираюсь во всех этих C, но если этот элементарный кирпичик построен правильно, то решение изложено вроде бы как правильно. Для двух приведённых наборов чисел по крайней мере сходится
Сначала упростим задачу. Пусть искомое число способов - S. Утверждается, что S=SA * SB, где SA - количество способов размещения красных шаров, SB - синих. Тогда задача будет иметь вид: сколькими способами можно заполнить N коробок A шарами. Причем, как сказано в условии, можно заполнять не все коробки, и класть не все шары. Введем N+1-ю коробку - "карман", в котором лежат шаре, не положенные ни в одну коробку. Тогда задача будет такая: сколькими способами можно разместить A шаров в N+1 коробку. Для этого есть формула сочетаний с повторениями: ~С(n,m) = (n+m-1)!/(n-1)!m! (тут С с волной наверху) В нашем случае SA = ~C(N+1, A) Итого, S = ~C(N+1, A) * ~C(N+1, B)
4
|
|
|
Комп_Оратор)
|
||
| 14.02.2012, 23:23 | ||
|
Второй день на фоне житейском, думаю об этой фразе:
"количество различных способов, которыми возможно заполнить коробки шарами" Есть приятная неоднозначность в этой фразе. Что имеется в виду, - способ как процесс или как результат загрузки? Проще думать, что как результат. В самом деле, если учесть, что в условии сказано, что шары одного цвета неотличимы, то вероятно порядок следования шаров и групп шаров при загрузке не имеет значения. В противном случае, кто мешал ввести в условие нумерацию шаров? И всё же с точки зрения русского языка, способ загрузки, строго говоря, подразумевает порядок выборки шаров из кучи. Ловушка? Не знаю... Итак вариант первый и самый, кажется простой, - способ загрузки - определяется состоянием коробок после загрузки, а именно - распределением шаров двух цветов, по коробкам и вне коробок. Как было отмечено Evg, "внекоробье", с логической точки зрения, - просто, ещё одна коробка. Тогда я рассуждаю так: Займёмся шарами одного цвета, для определённости - белыми (их А штук). Один шар в N+1 коробке можно разместить N+1 способом. И поскольку очередность и размер групп выборки из кучи шаров для загрузки, не имеет значения для того, что мы понимаем под способом загрузки, то все шары одного цвета (и другого цвета тоже, как будет видно далее) в одинаковых условиях.То есть получаем (N+1)^A способов для белого цвета. Из тех же соображений (N+1)^B для шаров красного цвета. Поскольку размещение красных ни как не зависит от размещения белых. В итоге получаем (N+1)^(A+B) способов, для всех шаров. ![]() Для 2 шаров и 1 коробки - 4. для 2 шаров и 2 коробок - 9, вроде работает. Если Вы, дорогие программисты не найдёте в этих рассуждениях серьезных недочётов, готов изложить далее свой вариант попытки решений, учитывающих очередность загрузки. Сейчас и так места занял, много. ![]() Добавлено через 17 минут
0
|
||
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|||
| 15.02.2012, 08:15 | |||
|
Это высказывание ошибочно: Например, дано две коробки и два красных шара. По Вашим рассуждениям должно получится (2+1)^2 = 9 вариантов их размещения. Но на самом деле их будет только 6 (проверить в ручную несложно). А все потому, что Вы считаете различными способами размещения, когда в первой коробке лежит первый красный шар, и когда в первой коробке лежит второй красный шар. На самом деле это один и тот же способ размещения.
1
|
|||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|
| 15.02.2012, 08:38 | |
|
1
|
|
|
Комп_Оратор)
|
||
| 15.02.2012, 14:03 | ||
![]() Похоже любое количество коробок N+1>A можно разделить на группы непревышающие А и далее понятно...
0
|
||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|
| 15.02.2012, 16:13 | |
|
1
|
|
|
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
|
||||||
| 17.02.2012, 16:30 [ТС] | ||||||
0
|
||||||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|
| 18.02.2012, 20:16 | |
|
Что это за монстр?! Эти восемь сотен строк кода на задачу, решение которой сводится где-то к десяти строкам? Или этот код что-то еще делает, помимо решения задачи в первом посте?
0
|
|
|
Higher
|
|
| 18.02.2012, 20:20 | |
|
0
|
|
| 18.02.2012, 20:20 | |
|
Помогаю со студенческими работами здесь
19
задача про коробки и шары - слишком много решений
Биос из коробки DI/IoC из коробки «Удачные коробки» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|