Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
La multi ani @Klasse!

La multi ani @shmecherul!

pareri ipad 6-2018- flip

Cum au aparut supermarketurile in...
 Campanii mincinoase Carrefour

Tv toshiba defect

touchscreen navigatie stricat

bonsai - de unde?
 Resetare Bonus Malus

Unitatea optica DVD-rw absenta pe...

Problema configurare Wireguard

Dozatoare de apa, cu alimentare d...
 Intarziere aterizare avioane

Accident masina reparata pe CASCO

Probleme Ginseng Microcarpa

Un sunet pronuntat la BMW e90 318i
 

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,997
  • Î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,997
  • Î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,997
  • Î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

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

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