-
> Mystic © (21.04.18 21:06) [10]
Хм. Насчет рекурсии я думал так: Пусть k - общее количество цветов, как в условии n - длина последовательности r - количество цветов в последовательности.
тогда:
function p(k,n,r:integer):extended; begin if r>n then Result:=0 else if r=1 then Result:=1/power(k,n-1) else result:=p(k,n-1,r-1)*(k-r+1)/k+p(k,n-1,r)*r/k; end;
т.е. если например имеется 5 цветов и последовательность из 7 шариков то вызываем функцию так:
px:=p(5,7,5);
Вот только как теперь с него сделать общую формулу - пока не придумал.
-
В таком виде понятнее должно быть:
function P(k,n:integer):extended; function SubP(n,r:integer):extended; begin if r>n then Result:=0 else if r=1 then Result:=1/power(k,n-1) else Result:=((k-r+1)*SubP(n-1,r-1) + r*SubP(n-1,r))/k; end; begin Result:=SubP(n,k); end;
-
Всегда было любопытно: почему большинство задач - про комбинаторику и т.п. тервер? у кого-то в жизни встречаются такого рода задачи? или это просто типичная тема для интеллектуалов, типа как шахматы? в самом деле интересно (про реальные задачи у вас на работе, связанные с этим)
-
> в самом деле интересно (про реальные задачи у вас на работе, > связанные с этим)
> картман © (21.04.18 20:31) [9] > > > > А тебе вообще зачем это? > > пятничная задачка - я решил, по работе нужно было.
-
В какой области жизнедеятельности применяется ваш софт?
-
логистика
-
-
интересно, что числитель при k>n равен нулю))
-
А можно интереса формулу сюда написать, или выложить на что-то более доступное? А то самому интересно, но яндекс у нас в/на Украине заблокирован, а искать какой-нить прокси-сервер или делать что-то другое для обхода - как-то лень.
-
> а искать какой-нить прокси-сервер или делать что-то другое > для обхода - как-то лень
во времена, когда блокируют рутрекер и телеграм, прокси должны быть под рукой :)
-
> во времена, когда блокируют рутрекер и телеграм, прокси > должны быть под рукой :)
Ок. ты меня убедил. Пришлось найти все-таки проксик. Посмотрел формулу.
-
> картман © (24.04.18 12:39) [26] > в общем, такая вот формулка получается: https://yadi.sk/i/P2A- > 0_Zv3UiLtc
C - это что? C(n,k) = n! * / (k!*(n-k)!) ?
-
> SergP © (24.04.18 14:04) [30] > Ок. ты меня убедил. Пришлось найти все-таки проксик.
Opera с её vpn Самое простое и готовое "из коробки" поражаюсь тому, что её не блокируют
-
> KSergey © (24.04.18 15:42) [32]
Да просто не так часто и бывает необходимость лазить по яндексу, за время действия блокировки он мне первый раз понадобился... Ну и еще ранее один раз была необходимость зайти на сайт drweb. Посему и не обзавелся чем-нить постоянным для обхода блокировки, оба раза просто искал прокси, находил и заходил через них. А что касается остального заблокированного, то вконтакте и одноклассники мне и не нужны (вообще не перевариваю такие вещи, как вконтакте, одноклассники, твиттер, фейсбук, телеграм, и прочие, т.е. все что называется "социальные сети"). А mail.ru - ИМХО вообще правильно сделали, что заблокировали (вот только потом его почему-то разблокировали), ибо это рассадник различной гадости, той что в инете люди называют "вирусы от mail.ru" (спутник, "браузер" Амиго и пр.). А все остальные российские сайты, которые бывают мне нужны нормально работают, их никто не блокировал.
-
> C(n,k) = n! * / (k!*(n-k)!)
да
-
> картман © (24.04.18 16:56) [34]
Да, все верно) Формулу не понял, но мой тестовый стенд показал правильность. Будет время своим способом попытаюсь вывести твою формулу.
-
>Тимохов Дима © (24.04.18 17:38) [35] >Будет время своим способом попытаюсь вывести твою формулу.
гугли "формула включений-исключений"
-
Кроме прямого подсчета с раскрытием скобок методом включений-исключений, также легко получить результат по индукции.
-
какие вы все умные)) я вот только аналитически для N=K решил. и численно для N=K+1.
-
> Sha © (25.04.18 09:38) [37] > Кроме прямого подсчета с раскрытием скобок методом включений- > исключений, также легко получить результат по индукции.
Если не сложно, распиши, пожалуйста
|