Ahoj,mam jdeden problem se kterym si nejak nedokazu poradit, mam n poli a každe pole obsahuje 2 prvky(int) a ted s tema polema potrebuju udelat vseckny mozne kombinace...
napr.: 3 pole : pole1[2,7] pole2[8,9] pole3[1,6] z toho potrebuju tyto kombinace
2,8,1
2,8,6
2,9,1
2,9,6
7,8,1
7,8,6
7,9,1
7,9,6
Diky za jakekoliv rady...
Fórum › C / C++
Pole a kombinace
pokud to staci do 32 nebo 64 prvku tak ti staci unsigned int / long, bitove operace pro zjisteni jaky prvek na danne pozici vypsat a pri kazde iteraci pricist 1
pokud potrebujes delsi tak uz se to bude muset resit na vic prvku pocitadla
data jsou zapsana v pocitaci binarne a diky tomu lze snadno delat binarni operace..
takze:
unsigned char neco = 0 ; // 00000000
neco = 20; // 00010100
to same ++neco; // 00010101
++neco; // 00010110
a tak dale...
binarni operace:
bitovy posun 00000001 << 3 = 00001000
"maskovani bitu" neco & (1 << 3) => 0
zatimco neco &(1 << 4) => 16 (00010000) - zustal jen bit na pozici, kde je jednicka
proste:
unsigned char test, i;
for ( test=0 ; ; test++) {
for ( i=0 ; i < 8 ; i++ ) {
printf("%d ", test & (1 << i) ); // vypise jako soucet cifer ( napr. 12 = 0 0 0 0 0 8 4 0 0 )
}
printf("\n");
if ( test == 255 ) break; // pri unsigned int moc dobre nefunguje konstrukce jako test < 256 :) - zadna 256 vlastne neexistuje... uz je to 0 takze by se nikdy neskoncilo
}
samozrejme tobe se pak bude hodit jen 0/1 na dane pozici takze: ( test & (1 << i) ) != 0
sou teda jeste dalsi zajimave zjednoduseni ale toto zatim staci
for (size_t i1 = 0; i1 < delka_pole_1; ++i1)
for (size_t i2 = 0; i2 < delka_pole_2; ++i2)
for (size_t i3 = 0; i3 < delka_pole3; ++i3)
std::cout << pole1[i1] << ", " << pole2[i2] << ", " << pole3[i3] << '\n';
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 68 hostů
Podobná vlákna
Hledání nejvyšší hodnoty součinu kombinace prvků dvojrozměrného pole — založil bobek11
Kombinace materiálů — založil marek321
Kombinace inputů — založil Caterpillar
Moderátoři diskuze