» »

vse kombinacije

vse kombinacije

Old-Death ::

Ok, pri matematiki ravno jemljemo računanje kombinacij variacija, permutacij ...... in sem se domislil da bi pa jaz rad kakšen program v zvezi s tem ustvaril.


Imamo recimo 5 elementov A,B,C,D,E z katerimi bi radi zapisali vse kombinacije BREZ ponavljanj in uporabljeni morajo biti vsi elementi.

Torej vem da je število takih kombinacij 5!, funkcijo za računanje fakultet sem že napisal potem pa se mi utavi.

Rabim teoretično pomoč (ni važno kateri jezik, če lahko na splošno) pri izdelavi funkcije, ki bi zgenerirala vse kombinacije teh petih elementov.

i = 0
loop dokler (i<= fakulteta)
//tukaj je tema:D
i = i + 1
konec loop

Aspirinix ::

MIslim, da ne smeš iti naenkrat izpisovat celotnih permutacij, temveč samo permutacije ene stopnje manj. itn.
Prvo fiksiraš, ostale permutiraš, in to ponalvjaš. Sem enkrat delal, pa tudi nisem prišel do konca, vendar mislim, da sem tistikrat videč to kot najboljšo rešitev.
A****
AB***
ABC**
ABCDE
ABCED
ABDCE
ABDEC
...

Old-Death ::

tenx za odg
samo še zmeraj se mi ne sanja kako bi to izpeljal do konca
rad bi imel namreč eno univerzalno funkcijo, ki bi zgenerirala vseh - x elemtov ki bi jih predložil.

StratOS ::

Prirocnik v roko pa bo šlo.
Misli to je the easiest way da ti kdo pomaga, naj nekaj na tvojem zeljniku zraste.
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Old-Death ::

Evo povej ime priročnika z matematičnimi funkcijami v programiranju in ga grem takoj iskat.

A bi me lahko vsaj kdo na pravo pot usmeru, ker se mi niti sanja ne kako bi prisilil računalnik do tega da bi mi kombinacije skupi metu??

Imortales ::

Rekurzija.
To sporočilo se bo samo uničilo čez 5 sekund.

noraguta ::

nisem ziher ampak sam na hitr ideja
po moje bi slo ce stejes do (n-1)! po modusu (n-1).
ce mas 0 indeksiranje.
zmapiras stvilkice na crkice in bi bilo mogoce to.


drugac pa za mtematko in racunalnik najvec zves na mathtools. se mors prjavt ampak tle mas zbranih na miljone povezav naprej.

Thomas ::

Kako se tak program naredi?

Narediš gnezdene for zanke. Za vsako spremenljivko svoja zanka, v kateri zavzame vse vrednosti.

V centru programa (najbolj notranji zanki šteješ, kdaj (kolikokrat) so pogoji izpolnjeni.

Tko lahko zračunaš število vsakršnih permutacij, kombinacij ...

Se da še bolje?

Seveda se da - ampak a kapiraš najprej tole?

:\
Man muss immer generalisieren - Carl Jacobi

CHAOS ::

Thomas, a si takole mislil? :8) To je res samo za permutacije brez ponavljanja. Odvisno od stevila spremenljivk, dodas samo potrebne pogoje, ki morajo biti izpolnjeni; sepravi, da se nobeden izmed znakov ne sme ponoviti.

int i,j,k;
for (i=1; i<=3; ++i)
{
for (j=1; j<=3; ++j)
{
for (k=1; k<=3; ++k)
{
if ( (i != j) && ( i != k) && ( j != k))
System.out.println(i+" "+j+" "+k);
}
}
}


'They have computers, and they may have other weapons of mass destruction.'

mnlkpo ::

za permutacije ma kar STL direkt resitev: next_permutation


#include <iostream>
#include <algorithm>
#include <iterator>

int main() {
int A[] = {1, 2, 3, 4, 5};
int N = sizeof(A) / sizeof(int);

do {
std::copy(A, A+N, std::ostream_iterator<int>(std::cout));
std::cout << std::endl;
} while(std::next_permutation(A, A+N));

return 0;
}


tole ispise vse permutacije niza 12345. sicer je pa to z
http://www.sgi.com/tech/stl/next_permut...

Thomas ::

CHAOS!

Mislil sem tako. PLUS:

If (i==j) goto over01

in podobne fore lahko postavljaš not.

Tud pogoj je lahko "Če sta not dva Eje in trije Bji pol cool else ni cool".

Vso kombinatoriko lahko narediš na ta način.

Da pa ne bi predolgo teklo, dodajaš exit pogoje.

Am I right?

:)
Man muss immer generalisieren - Carl Jacobi


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[java] kombinacije

Oddelek: Programiranje
212858 (2333) napsy
»

Algoritem za zapis kombinacij

Oddelek: Programiranje
111937 (1666) WarpedGone
»

Kako izračunati št. kombinacij

Oddelek: Pomoč in nasveti
1513509 (13245) milc
»

presek poligonov v opengl?

Oddelek: Programiranje
121334 (1134) Red_Mamba
»

Loto verjetnost (strani: 1 2 )

Oddelek: Loža
5917455 (16447) McHusch

Več podobnih tem