Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Parola la lock screen

Deparazitare externa pisici fara ...

Seriale turcesti/coreene online H...

Merita un Termostat Smart pentru ...
 Sfat achizitie MTB Devron Riddle

Problema mare cu parintii= nervi ...

switch microtik

Permis categoria B la 17 ani
 Sfaturi pentru pregatirea de eval...

Crapaturi placa

cum imi accesez dosarul electroni...

Momentul Aprilie 1964
 Sursa noua - zgomot ?

A fost lansat Ubuntu 24.04 LTS

Pareri apartament in zona Berceni?

Free streaming SkyShowtime de la ...
 

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


#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,238
  • Î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,443
  • Î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

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

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