![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
KOMBIDEN |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
ПОМОГИТЕ КТО МОЖЕТ.
Я ФИЗИК В ПОСКАЛЕ СИКУ СЛОБО, НО НАШЁЛ НА ВАШЕМ САЙТЕ ПОЧТИ ТО ЧТО МНЕ НУЖНО. ВОТ СХОЖАЯ С МОЕЙ ЗАДАЧА НА СОЧЕТАНИЯ КОТОРУЮ Я НАШЁЛ. Сочетания Задачи о сочетаниях решают вопрос о том, сколькими способами можно выбрать M элементов из заданного N элементного множества и генерации всех возможных выборок. Число выборок вычисляется следующей формулой С=n!/(m!(n - m)!). Рассмотрим задачу о генерации сочетаний в лексикографическом порядке. ПРИМЕР 1. Для примера рассмотрим начальные данные N=6 и M=4. Тогда число сочетаний равно 15. Начальное сочетание образует последовательность 1, 2, .. m, а последнее n-m+1, … , n. Цитата 1234 1256 2345 1235 1345 2346 1236 1346 2356 1245 1356 2456 1246 1456 3456 Переход к следующему сочетанию осуществляется по следующему правилу: требуется просмотреть текущее сочетание с конца и найти элемент, который можно увеличить. То есть такой элемент что a[i] <> n-k+i. Далее увеличиваем этот элемент на 1, а оставшуюся часть сочетания заполняем числами натурального ряда большими измененного элемента в порядке их следования. program sochets; МОЯ ЗАДАЧА ОТЛИЧАЕТСЯ ОТ ПРЕДСТАВЛЕННОЙ ЗАДАЧИ(ПРИМЕР 1) ТЕМ ЧТО: 1) N=8 А НЕ 6 А СЛЕДОВАТЕЛЬНО И КОЛЛИЧЕСТВО СОЧЕТАНИЙ УВЕЛИЧИТСЯ С 15 ДО 70. 2) НЕОБХОДИМО ЧТОБЫ АЛГОРИТМ НЕ ТОЛЬКО ПОДСЧИТЫВАЛ И ВЫВОДИЛ НА ЭКРАН КОЛ-ВО СОЧЕТАНИЙ НО И ПОДСЧИТЫВАЛ И ВЫВОДИЛ КОЛ-ВО СОЧЕТАНИЙ В КОТОРЫХ ВСТРЕЧАЮТСЯ ОПРЕДЕЛЁННЫЕ ЦЫФРЫ, А КОНТРЕТНЕЕ НУЖНО ПОДСЧИТАТЬ И ВЫВЕСТИ ВСЕ СОЧЕТАНИЯ В КОТОРЫХ ВСТРЕЧАЮТСЯ СЛЕДУЮЩИЕ ЦЫФРЫ: 1 И 3 ЛИБО 2 И 4 ЛИБО 3 И 5 ЛИБО 4 И 6 ЛИБО 5 И 7 ЛИБО 6 И 8 ЛИБО 1 И 7 ЛИБО 2 И 8. С ПОМОЩЬЮ ТЕОРИИ ВЕРОЯТНОСТИ Я ЭТУ ЗАДАЧУ РЕШИЛ НО МНЕ НУЖЕН ИМЕННО АЛГОРИТМ НА ПАСКАЛЕ. И ПОДСКАЖИТЕ ПАЖАЛУЙСТО СКОЛЬКО ПРИМЕРНО ВРЕМЕНИ АЛГОРИТМ БУДЕТ СЧИТАТЬ НА ПОСКАЛЕ ЭТУ ЗАДАЧУ ЕСЛИ ЗНАЧЕНИЯ "M" И "N" БУДУТ БОЛЬШИМИ, А КОНКРЕТНЕЕ M=50, N=10 ОГРОМНОЕ СПОСИБО ПРОГРАМИСТАМ ОТ ФИЗИКОВ. |
![]() ![]() |
Гость |
![]()
Сообщение
#2
|
Гость ![]() |
Доброго времени суток всем. Помогите дополнить алгоритм ещё раз если это возможно т. к. я не могу вывести безошибочно математическую формулу. Чтобы было более понятно сначала представлю задачу в виде задачи по теории вероятности, а затем попытаюсь написать задачу языком приближенному к языку программирования. Предыдущий алгоритм вычислял следующее: было дано множество из N элементов предположим поле из N ячеек(у каждой ячейки свой порядковый номер). На это поле случайным образом выбрасоволось M белых шаров. Я в алгоритме задавал несколько комбинаций(сочетаний) выпадения белых шаров на поле с ячейками, указывая номер ячейки куда может выпасть шар . Алгоритм считал все возможные сочетания из заданного N элементного множества, другими словами подсчитывалось полное количество возможных сочетаний из M белых шаров на поле с количеством ячеек равное N(в алгоритме количество этих сочетаний обозначено как *total combinations*). Так же алгоритм отдельно считал и показывал количество всех заданных мной в алгоритме комбинаций выпадения белых шаров на поле с ячейками(данное количество заданных сочетаний обозночалось в алгоритме как *X combinations*.
В дополненном варианте на это же поле помимо M белых шаров выбрасывается R красных шаров. В алгоритме необходима возможность задавать нужные мне комбинации выпадения отдельно для красных и белых шаров т. е. задавать номера ячеек как я это делал в предыдущем алгоритме. Нужно что бы алгоритм считал и показывал помимо всех возможных комбинаций выпадения белых и красных шаров на поле-*total combinations*, ещё считал и показывал количество всех сочетаний шаров где встречается хотя бы одна заданная в алгоритме комбинация или из белых шаров или из красных шаров(назовём эти сочетания *Y combinations*), а так же подсчитывал и показывал количество всех сочетаний где встречается хотя бы одна заданная комбинация из белых шаров И плюс хотя бы одна заданная комбинация из красных шаров(назовём эти сочетания *Z combinations*). В алгоритме нужно так же учесть что в одну ячейку может попасть только один шар. Другими словами нужно ввести ещё одну переменную R элементы которой как и элементы M переменной принадлежат множеству N. Элементам переменной R как и элементам переменной M в алгоритме можно присваивать значения(натуральные числа). Из элементов переменной R как и из элементов переменной M формируются комбинации на множестве N. Помимо расчёта всех возможных сочетаний M и R элементов на N множестве необходимо чтобы алгоритм рассчитывал и показывал количество сочетаний в которых встречается хотя бы одна заданная в алгоритме комбинация из элементов переменной М или хотя бы одна заданная комбинация из элементов переменной R, а так же необходим расчет в алгоритме когда рассчитывается и выводится количество всех сочетаний в которых встречается хотя бы одна заданная в алгоритме комбинация из элементов переменной М и одновременно хотя бы одна заданная в алгоритме комбинация из элементов переменной R. Я понимаю что всё это больше похоже на путаницу, но так как задача не совсем стандартная(по меркам теории вероятности и комбинаторики) я просто пытался представить её как можно более полно. Спасибо за любую помощь! |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:29 |