Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...
 problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...

Jante noi shitbox
 Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio

Un nou pericol pt batrani
 Ar trebuii sa vindem imobiliarele...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik

Noul format Jpegli iși propu...
 

problema matrice binara c++

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

#19
Iulius-Foyas

Iulius-Foyas

    Active Member

  • Grup: Members
  • Posts: 1,361
  • Înscris: 21.04.2019

View PostStef_Stef, on 02 iulie 2019 - 15:36, said:

se respecta si cerinta 2: doua linii consecutive din matrice au n-2 pozitii cu valori identice iar celelalte 2 pozitii contin valori diferite?

Quote

Deci vom avea un tablou cu 4 coloane, 6 linii. Fiecare grupare de linii consecutive va avea: primele 2 pozitii acelasi si ultimele 2 diferite.
Avem:
2 x 0 = 0 =>  0  0  0  0
2 x 1 = 2 =>  0  0  1  0

2 x 2 = 4 =>  0  1  0  0
2 x 3 = 6 =>  0  1  1  0

2 x 4 = 8 =>  1  0  0  0
2 x 5 = 10=> 1  0  1  0
Da

Edited by Iulius-Foyas, 02 July 2019 - 15:39.


#20
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,956
  • Înscris: 24.04.2013

View PostStef_Stef, on 02 iulie 2019 - 15:36, said:

se respecta si cerinta 2: doua linii consecutive din matrice au n-2 pozitii cu valori identice iar celelalte 2 pozitii contin valori diferite?

View PostIulius-Foyas, on 02 iulie 2019 - 15:37, said:

Da

Ba nu.

@Iulius-Foyas: Ai examinat doar numere mici. Ia vezi ce se intampla cand treci de la 7 la 8…

Cand convertesti index_linie * 2 in baza 2, nu faci altceva decat sa numeri in baza 2 dar de fiecare data sa ai un bit 0 adaugat in plus le dreapta. Prin urmare daca se face carry peste mai mult de 1 cifra sau nu se face deloc atunci nu se respecta conditiile problemei. Chiar in exemplul tau, primele 2 linii nu difera decat la o singura pozitie nu 2 cum se cere.

@MihaelaEla:
Nu stiu daca exista un algoritm ‘clasic’ pentru a rezolva problema ta.

Un backtracking ar trebui sa mearga. Ai 2n valori distincte de n biti si tie iti trebuie doar 2n-2 din ele. Deci s-ar putea sa gaseasca o solutie destl de rapid.

Altfel, imi pare ca exista o solutie destul de simpla. Pornesti cu prima linie 0 00. In prima etapa, pentru a genera o noua linie negi cate 2 biti alaturati ai liniei anterioare, incepand cu primele 2 pozitii din stanga, apoi a 2-a si a 3-a, etc. Asa mai obtii n - 1 linii. In a doua etapa faci din nou acelasi lucru dar numai de n - 2 ori, adica te opresti inainte de a nega ultima pereche (total: 1 + n-1 + n-2 = 2n - 2 linii). Cred ca iese ce trebuie, dar nu am incercat.

A treia solutie ar fi sa apelezi la ceva clasic inrudit cu problema ta: coduri Gray. Generezi un cod Gray de n - 1 biti, si la fiecare linie adaugi alternativ cate un bit 0/1 la dreapta (sau stanga, sau in alta pozitie fixa, cum preferi).

Edited by sags, 02 July 2019 - 16:58.


#21
Iulius-Foyas

Iulius-Foyas

    Active Member

  • Grup: Members
  • Posts: 1,361
  • Înscris: 21.04.2019

Quote

@Iulius-Foyas: Ai examinat doar numere mici. Ia vezi ce se intampla cand treci de la 7 la 8…
Cand convertesti index_linie * 2 in baza 2, nu faci altceva decat sa numeri in baza 2 dar de fiecare data sa ai un bit 0 adaugat in plus le dreapta. Prin urmare cand se face carry peste mai mult de 2 cifre sau peste o singura cifra nu se respecta conditiile problemei. Chiar in exemplul tau, primele 2 linii nu difera decat la o singura pozitie nu 2 cum se cere.
insa nici exemplu dat de autori nu respecta cerintele problemei chiar si pt numere mici. Asadar ce este corect pana la urma ?

Edited by Iulius-Foyas, 02 July 2019 - 17:01.


#22
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,956
  • Înscris: 24.04.2013
Exemplul dat de autori’, adica acesta?

View PostMihaelaEla, on 02 iulie 2019 - 11:20, said:

… ex:
0 0 1
1 0 0
0 1 0
1 1 1
Eu vad ca respecta cerintele impuse. Am subliniat pozitiile care difera fata de linia anterioara.

#23
Iulius-Foyas

Iulius-Foyas

    Active Member

  • Grup: Members
  • Posts: 1,361
  • Înscris: 21.04.2019

Quote

doua linii consecutive din matrice au n-2 pozitii cu valori identice iar celelalte 2 pozitii contin valori diferite.
n = 3 => n-2 pozitii = 3-2 = 1 , deci prima pozitie trebuie sa fie identica la doua linii consecutive.

Quote

0 0 1
1 0 0
0 1 0
1 1 1

Edited by Iulius-Foyas, 02 July 2019 - 18:03.


#24
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,956
  • Înscris: 24.04.2013
Eu inteleg ca n-2 din pozitii trebuie sa fie identice, acestea putand fi oricare din cele n nu neaparat primele sau consecutive sau etc. Si de la o pereche de linii consecutive la alta pot fi alte n-2 pozitii, nu neaparat aceleasi. Celelalte 2 trebuie sa fie diferite.

Dealtfel daca ‘prima pozitie trebuie sa fie identica la [oricare] doua linii consecutive’ se deduce prin inductie ca prima pozitie (sau primele n-2 in cazul general) a tuturor liniilor trebuie sa fie aceeasi (aceleasi). Raman sa varieze doar ultimele 2 pozitii, adica cel mult 4 combinatii distincte…

Edited by sags, 02 July 2019 - 18:07.


#25
Iulius-Foyas

Iulius-Foyas

    Active Member

  • Grup: Members
  • Posts: 1,361
  • Înscris: 21.04.2019

View Postsags, on 02 iulie 2019 - 18:04, said:

Eu inteleg ca n-2 din pozitii trebuie sa fie identice, acestea putand fi oricare din cele n nu neaparat primele sau consecutive sau etc. Celelalte 2 trebuie sa fie diferite.
Adica acel (n-2) sa reprezinte numarul de elemente al intersectiei dintre multimea elementelor liniei 1 si multimea elementelor liniei 2 ?

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

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