IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> ПОМОГИТЕ ДОПОЛНИТЬ АЛГОРИТМ, ДОПОЛНИТЬ АЛГОРИТМ ПОДСЧЁТА СОЧЕТАНИЙ
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


ПОМОГИТЕ КТО МОЖЕТ.
Я ФИЗИК В ПОСКАЛЕ СИКУ СЛОБО, НО НАШЁЛ НА ВАШЕМ САЙТЕ ПОЧТИ ТО ЧТО МНЕ НУЖНО.
ВОТ СХОЖАЯ С МОЕЙ ЗАДАЧА НА СОЧЕТАНИЯ КОТОРУЮ Я НАШЁЛ.
Сочетания
Задачи о сочетаниях решают вопрос о том, сколькими способами можно выбрать 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; 
var
i, j, n, m: integer;
a: array[0 .. 100] of integer;

{ процедура вывода текущего сочетания }
procedure use;
var i: integer;
begin
writeln;
for i:=1 to m do write(a[i]:3)
end;

begin
write('ввод N и M: '); read(n, m);
{ формирование первого сочетания }

for i:=0 to m do a[i]:=i;
repeat
use;
i:=m;
while a[i]=n-m+i do dec(i); { поиск элемента для изменения }
inc(a[i]);
for j:=i+1 to m do a[j]:=a[j-1]+1; { изменение правой части сочетания }
until i=0;
end.


МОЯ ЗАДАЧА ОТЛИЧАЕТСЯ ОТ ПРЕДСТАВЛЕННОЙ ЗАДАЧИ(ПРИМЕР 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

ОГРОМНОЕ СПОСИБО ПРОГРАМИСТАМ ОТ ФИЗИКОВ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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.
Я понимаю что всё это больше похоже на путаницу, но так как задача не совсем стандартная(по меркам теории вероятности и комбинаторики) я просто пытался представить её как можно более полно. Спасибо за любую помощь!
 К началу страницы 
+ Ответить 

Сообщений в этой теме
KOMBIDEN   ПОМОГИТЕ ДОПОЛНИТЬ АЛГОРИТМ   9.02.2010 0:20
Lapp   KOMBIDEN, пожалуйста, прочти Правила Форума. Особ…   9.02.2010 8:40
KOMBIDEN   Большое спосибо Lapp   11.02.2010 2:35
Lapp   Большое спосибо LappНет проблем, заходи еще. Можн…   11.02.2010 11:37
KOMBIDEN   Добрый день LAPP. Извини что опять тебя беспокою.…   28.02.2010 2:02
Lapp   KOMBIDEN, извини, но опять тебя приходится учить э…   28.02.2010 10:56
KOMBIDEN   Спосибо за токую оперативную помощ.   28.02.2010 21:37
KOMBIDEN   Здравсвуйте. В чём ошибка!? Формула подсчёта в…   21.03.2010 3:10
sheka   Здравсвуйте. В чём ошибка!? Формула подсчёта …   21.03.2010 3:23
Lapp   при значениях n = 50 и m = 10 алгоритм выдал что (…   21.03.2010 5:46
volvo   Вот только про Comp не надо забывать... Хоть форма…   21.03.2010 6:12
KOMBIDEN   Подскажите, пожалуйсто, по подробнее как менять ти…   21.03.2010 14:52
Lapp   Подскажите, пожалуйсто, по подробнее как менять ти…   21.03.2010 22:05
KOMBIDEN   Спосибо. Работает, только ответ выдает в десятично…   23.03.2010 4:59
Lapp   ответ выдает в десятичном числе с плавоющей точкой…   23.03.2010 7:51
KOMBIDEN   Понял, спосибо, пользуюсь пока Турбо, а какие прии…   23.03.2010 13:01
Lapp   какие приимущества у FPC перед Турбо в моём случае…   25.03.2010 3:34
KOMBIDEN   Полял. Спосибо. Сейчас Скачаю FPC. Как я понимаю о…   26.03.2010 14:32
Lapp   Скачаю FPC. Как я понимаю он полностью совместим с…   26.03.2010 16:03
KOMBIDEN   Огромое спосибо, что посоветовали FPC. На FPC алго…   26.03.2010 19:24
Lapp   На FPC алгоритм с дерективами на тестовых задачах …   27.03.2010 2:51
Гость   Доброго времени суток всем. Помогите дополнить алг…   11.03.2011 23:41


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 9:09
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name