Комбинаторика

4 отговора 274 прегледа
#1

Комбинаторика

Как мога чрез програма да:

генирирам пермутации без повторения от n елемента
генирирам пермутации с повторения от n елемента
генирирам вариации без повторения от n елемента от к-ти клас
генирирам вариации с повторения от n елемента от к-ти клас
генирирам комбинации без повторения от n елемента от к-ти клас
генирирам комбинации с повторения от n елемента от к-ти клас


Въобще интересуват ме комбинаторните алгоритми.

Отговор
в отговор на CProg #2

Ами има си форумли :)

1. Програмирай си N!
function NFack(N: integer): int64;
2. Програмирай си формулките с помощта на функцията за N!
3. Измисли функциика за смятане на k*(k+1)*...*n, това е N!/K! - така ще оптимизираш сметките
function NКFack(N, К: integer): int64;

Така се прави - разбива са задачата на малки стъпки :)

Отговор
в отговор на NikB #3

Re: Ами има си форумли :)

Да, както се казва, това са алгоритми от типа разделяй и владей

Колкото до комбинаториката: Какво по-точно те интересува CProg?


Да намираш бройката на пермутациите, вариациите и комбинациите, или искаш
да намериш извадките в явен вид, така че да се види кои елементи от началното множество участват и в каква наредба са те?

Ако е първото, то проблема е тривиален и се свежда до развиването на стандартните формули в програмен код.
Ако е второто, решението във вид на код, ще бъде малко по-сложно, и на всичкото отгоре въпроса ти съвсем не дава достатъчна представа за това как да бъдат оформени извадките и т.н.

Е, аз съм готов да помогна, но би трябвало да си изясним тия неща предварително

[Fatal Error] UniverseLoader.god(666): Devision by cucumber. Please reinstall the Univerce
Отговор
в отговор на CProg #4

Re: Комбинаторика

виж например [линк]
и по- конкретно
[линк]

Отговор
в отговор на simple_code #5

Re: Ами има си форумли :)

Второто

Отговор