Pole a kombinace – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pole a kombinace – C / C++ – Fórum – Programujte.comPole a kombinace – C / C++ – Fórum – Programujte.com

 

datali
~ Anonymní uživatel
5 příspěvků
1. 8. 2010   #1
-
0
-

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...

Nahlásit jako SPAM
IP: 77.48.244.–
KIIV
~ Moderátor
+43
God of flame
1. 8. 2010   #2
-
0
-

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

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
datali
~ Anonymní uživatel
5 příspěvků
1. 8. 2010   #3
-
0
-

To KIIV : prosim te nemohl bys to vice rozepsat dik

Nahlásit jako SPAM
IP: 77.48.244.–
KIIV
~ Moderátor
+43
God of flame
1. 8. 2010   #4
-
0
-

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

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
datali
~ Anonymní uživatel
5 příspěvků
1. 8. 2010   #5
-
0
-

To KIIV : musim si to nějak promyslet, zatim mi to neni moc jasne (ne ty binarni operace ale jak to vyuzit v tech kombinacich)

Nahlásit jako SPAM
IP: 77.48.244.–
KIIV
~ Moderátor
+43
God of flame
1. 8. 2010   #6
-
0
-

jak vyuzit:
printf( " %c ", pole[i][( test & (1 << i) ) != 0 ] );


a velice zjednodusene je to hotove.. ikdyz ted musis mit to pole o 8mi prvcich

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
datali
~ Anonymní uživatel
5 příspěvků
1. 8. 2010   #7
-
0
-

To KIIV : ja už fakt nechci otravovat ale neexistuje nějaky jiančí způsob protože tady tomu nejak nerozumim

Nahlásit jako SPAM
IP: 77.48.244.–
KIIV
~ Moderátor
+43
God of flame
1. 8. 2010   #8
-
0
-

tak studuj
jinak musis mit pro kazdou polozku jednu promennou, hlidat si preteceni a pricist do dalsiho radu...
neni to o moc slozitejsi

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondra.holub+1
Stálý člen
1. 8. 2010   #9
-
0
-

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';

Nahlásit jako SPAM
IP: 89.203.160.–
datali
~ Anonymní uživatel
5 příspěvků
1. 8. 2010   #10
-
0
-

To ondra.holub : dik ale ono se rozhodne kolik těch poli bude až v běhu toho programu což se může měnit, ted tam musim mit pevný počet FORU(myslím)... ale díky jen je mi divne že sem na to nepřišel sám

Nahlásit jako SPAM
IP: 77.48.244.–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 123 hostů

Podobná vlákna

Kombinace — založil David

Kombinace — založil fcelik

Kombinace materiálů — založil marek321

Kombinace inputů — založil Caterpillar

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý