Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Convertit sistem de navigați...

Nu am sunet pe hdmi

Întrebare alunita

Schimbare tabla acoperis
 Trotineta Bolt cu reducere de 3 lei

Aragaz cu plita pe gaz si cuptor ...

Cablu FFC

Poco F6/F6 Pro
 Scurgere catre hazna

De la 24V la 5V DC?

Deducere TVA

Open WRT nu sincronizeaza ceasul ...
 salariu plafonat

sistem actionare electrica pentru...

Sfaturi achizitie auto ~10k€

ICC/ICM soft monitorizare si cont...
 

[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,270
  • Î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,527
  • Î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,270
  • Î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,270
  • Înscris: 24.02.2007
Spoiler


#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,270
  • Î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,527
  • Î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 spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

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