0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 2
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Немного о динамическом программировании24.11.2015, 22:00. Показов 2850. Ответов 3
Метки нет Все метки)
(
Динамическое программирование – это способ решения сложных оптимизационных или расчетных задач путем разбиения данной задачи на более простые, меньшие по размерности подзадачи. Чтобы убедиться в удобстве этого аппарата, рассмотрим задачу.
Кубик, грани которого помечены цифрами от 1 до 6, бросают N раз. Определите вероятность того, что произведение выпавших чисел будет в точности равна Q. Теперь рассмотрим N-ное бросание кубика. Оно обязательно увеличит текущее произведение в 1, 2, 3, 4, 5 или 6 раз. Тогда нам нужно просто посмотреть, из каких произведений на предыдущем броске (N-1) можно получить текущее путем умножения его на 1, 2, 3, 4, 5 или 6. Другими словами, мы обращаемся к тем произведениям, количество выпадений которых мы подсчитали на предыдущем броске и которые получились из текущего путем деления нацело на 1, 2, 3, 4, 5 или 6. Сложив количество этих исходов, мы получим как раз то количество, которое нам нужно. Тогда будем заполнять таблицу слева направо сверху вниз по формуле:
Например, для N = 7 и Q = 12 проверяем, на что делится нацело число 12: • На 1 – тогда по формуле (1) нам надо обратиться к ячейке с индексами i = 7 – 1 = 6 и j = 12 / 1 = 12. В этой ячейке a[6,12] лежит значение 120. • На 2 – обращаемся к ячейке i = 6 и j = 12/2 = 6. В ячейке a[6, 6] находится значение 36. • На 3 – в ячейке a[6, 12/3] значение 21. • На 4 - в ячейке a[6, 12/4] значение 6. • На 5 Q = 12 не делится, значит этот пункт мы пропускаем. • На 6 - в ячейке a[6, 12/6] значение 6. Привожу программу, составляющую таблицу для введенных значений:
0
|
24.11.2015, 22:00 | |
Ответы с готовыми решениями:
3
Немного о веб-программировании, программах и SEO Немного о динамическом выделении памяти ... В наушник попало немного воды и он стал немного тише играть |
Платежеспособный зверь
![]() 8959 / 4384 / 1652
Регистрация: 28.10.2009
Сообщений: 11,629
|
|
26.11.2015, 00:19 | |
Не слушайте этого супер-пупера, Вы правильно сделали, что поместили этот пример. Тема сложная и хорошо, когда её объясняют простыми словами и понятным языком. Спасибо.
1
|
26.11.2015, 00:19 | ||||||
Помогаю со студенческими работами здесь
4
Об 1С-программировании Математика в программировании О программировании и действительности
С++ в web-программировании Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
|
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели.
Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
|
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка:
«Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
|
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
|
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
|
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
|
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
|
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
|
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
|
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
|