Forum » Programiranje » 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
i = i + 1
konec loop
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
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
...
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.
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.
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."
"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??
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??
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.
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?
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? 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);
}
}
}
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
tole ispise vse permutacije niza 12345. sicer je pa to z
http://www.sgi.com/tech/stl/next_permut...
#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?
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [java] kombinacijeOddelek: Programiranje | 2858 (2333) | napsy |
» | Algoritem za zapis kombinacijOddelek: Programiranje | 1937 (1666) | WarpedGone |
» | Kako izračunati št. kombinacijOddelek: Pomoč in nasveti | 13509 (13245) | milc |
» | presek poligonov v opengl?Oddelek: Programiranje | 1334 (1134) | Red_Mamba |
» | Loto verjetnost (strani: 1 2 )Oddelek: Loža | 17455 (16447) | McHusch |