Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Un designer artist: Raymond Loewy

ATS din contactor modular

Parere apartament ~150k

Limitare la 100mb/s
 Altercație

Cartonașe și stickere t...

Ciobanesc german - zgarda electro...

Ce este instalatia asta? (Valea B...
 BD-R Verbatim 25gb salvare Fisier

Lupte WW2

Achizitie SUV, buget 17k euro

Gps traker pentru animale
 Aplicatii terte pentru IPTV, OTT,...

Drept trecere cu “carulR...

Sunt noile generatii care se nasc...

Butuc pedalier
 

[Provocare] Generarea produsului cartezian a n multimi

- - - - -
  • Please log in to reply
9 replies to this topic

#1
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007
Ai mai multe multimi, de exemplu: {1, 2}, {'a', 'b'}, {4, 5, 6} si vrei sa generezi toate elementele produsului catezian:

Quote

1a4
1a5
1a6
1b4
1b5
1b6
2a4
2a5
2a6
2b4
2b5
2b6

Cum ai rezolva asta? Cum ai returna rezultatele? Poate nu incap toate in memorie.

Orice limbaj. Ordinea nu conteaza.

Edited by dani.user, 22 May 2020 - 15:53.


#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Doar asa ca subiect de gandire in plus: 1. multe multimi cu putine elemente vs 2. putine multimi, fiecare cu multe elemente.

#3
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
Gresesc cand consider ca folosim asta "zi de zi", mai exact cand scriem data ?

Edited by MarianG, 22 May 2020 - 17:22.


#4
halflife

halflife

    Member

  • Grup: Members
  • Posts: 761
  • Înscris: 31.05.2015
#include<iostream>
using namespace std;
int nr_multimi, *elemente_pe_multime;
char ** element;
bool **state;
void print_elemnt(int nr_multimi, int *el_pe_multime){
	for(int i=0; i<nr_multimi; i++){
		for(int j=0; j<el_pe_multime[i]; j++){
			if(state[i][j] == 1){
				cout<<element[i][j]<<" ";
			}
		}
	}
	cout<<endl;
}
int update_state(){
	int i =0, ok = 0;
	for(i=nr_multimi-1; i>=0 && ok==0; i--){
		for(int j=elemente_pe_multime[i]-1; j>=0; j--){
			if(state[i][j] == 1){
				if(j>0){
					state[i][j] = 0;
					state[i][j-1] = 1;
					ok = 1;
					break;
				}
				else{
				  state[i][j] = 0;
				  state[i][elemente_pe_multime[i]-1] = 1;
				  break;
				}
			}
		}
	}
	if(i < 0 && ok ==0){
		return 1;
	}
	return 0;
}
int main(){
	cout<< "Nr de multimi: "; cin>> nr_multimi;
	elemente_pe_multime = new int[nr_multimi];
	element = new char*[nr_multimi];
	state = new bool*[nr_multimi];
	for(int i=0; i<nr_multimi; i++){
		cout<<"Nr elemente multime "<<(i+1)<<" : "; cin>> elemente_pe_multime[i];
		element[i] = new char[elemente_pe_multime[i]];
		state[i] = new bool[elemente_pe_multime[i]];
		for(int j=0; j<elemente_pe_multime[i]; j++){
			cout<<"Elementul "<<(j+1)<<" din multimea "<<(i+1)<<" : "; cin>>element[i][j];
		}
	}
	for(int i=0; i<nr_multimi; i++){
		for(int j=0; j<elemente_pe_multime[i]-1; j++){
			state[i][j] = 0;
		}
		state[i][elemente_pe_multime[i]-1] = 1;
	}
	do{
		print_elemnt(nr_multimi, elemente_pe_multime);
	}while(update_state() != 1);
	return 0;
}



#5
jegmihai

jegmihai

    Senior Member

  • Grup: Senior Members
  • Posts: 11,536
  • Înscris: 03.09.2013

 dani.user, on 22 mai 2020 - 15:52, said:

Poate nu incap toate in memorie.
Corutine?

#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007

 jegmihai, on 22 mai 2020 - 18:11, said:

Corutine?

Nu neaparat. Se poate si mai simplu.

 MarianG, on 22 mai 2020 - 17:22, said:

Gresesc cand consider ca folosim asta "zi de zi", mai exact cand scriem data ?

O comparatie usor fortata ar fi sa enumeri toate datele formate din zilele (1 ... 31), lunile (ian ... dec), anii (...). Ignorand ca unele luni au mai putine zile ca altele.

#7
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007
Spoiler


#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007

 halflife, on 22 mai 2020 - 18:09, said:

...


Nu-i rau pentru inceput.

#9
halflife

halflife

    Member

  • Grup: Members
  • Posts: 761
  • Înscris: 31.05.2015

 dani.user, on 23 mai 2020 - 13:08, said:


Nu-i rau pentru inceput.
Ca sa nu zica uni ca nu stiu sa scriu o linie de cod.

#10
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
Daca postezi mai des linii de cod o sa am grija sa nu o mai fac/faca.

Edited by MarianG, 23 May 2020 - 22:45.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate