Fie o matrice cu n linii și n coloane, care conține numere reale, cu următoarea proprietate: elementele de pe fiecare linie, precum și de pe fiecare coloană, sunt sortate crescător.Putem construi un algoritm pentru a verifica dacă un număr x dat apare în matrice. Care este complexitatea timp minimă a acestuia?
- O(log(n))
- O(n2)
- O(n∗log(n))
- O(n)
- O(n2∗log(n))
- O(1)
Se pornește din colțul din dreapta-sus: dacă elementul curent este mai mare decât x, coloana lui se elimină (se merge la stânga), iar dacă este mai mic, linia lui se elimină (se coboară). La fiecare pas dispare o linie sau o coloană, deci sunt cel mult 2n−1 pași: O(n).Mai repede nu se poate în general: elementele unei antidiagonale nu sunt ordonate între ele și oricare dintre ele poate fi x, deci toate trebuie inspectate.Un muzician generează toate secvențele de trei note muzicale din mulțimea {DO, RE, MI}. Într-o secvență notele muzicale se pot repeta. Fie n numărul total de secvențe obținute. Care este valoarea lui n?
- n=3
- n=1
- n=81
- n=9
- n=27
- n=12
Fiecare dintre cele 3 poziții ale secvenței poate primi oricare dintre cele 3 note, independent de celelalte.n=3⋅3⋅3=33=27.Se consideră n, f și i numere întregi pozitive, cu n≥2, și următoarea secvență în pseudocod.Care dintre următoarele secvențe de pseudocod conduc la aceeași valoare a lui f ca secvența de mai sus?
f <- 1
pentru i <- 2, n execută
f <- f*i
I
f <- 1
i <- 1
execută
i <- i+1
f <- f*i
cât timp i<n
II
f <- 1
i <- 2
cât timp i<=n
execută
f <- f*i
i <- i+1
III
f <- 1
i <- 2
cât timp i<n
execută
i <- i+1
f <- f*i
IV
f <- 1
pentru i <- 2, n execută
f <- f*(n-i)
- I, II și III
- II și III
- I, II și IV
- II și IV
- I și II
- I și IV
Secvența dată calculează f=2⋅3⋅…⋅n=n!.I: i crește la 2,3,…,n și f se înmulțește de fiecare dată, iar bucla se oprește când i ajunge la n (pentru n=2 face un singur pas): n!. II: înmulțește cu 2,…,n: n!. III: crește i înainte de înmulțire, deci înmulțește doar cu 3,…,n: 2n!. IV: ultimul factor este n−n=0, deci f=0. Corecte: I și II.Fie o mulțime de k simboluri cu care se pot forma șiruri distincte de lungime n (n≥k). Fiecare dintre cele k simboluri apare în fiecare șir de f1,f2,…,fk ori, fi≥1, 1≤i≤k.Pentru simbolurile {A, B, C} care apar de 1, 3 și, respectiv, 2 ori, primele 4 șiruri generate cu metoda backtracking sunt: ABBBCC, ABBCBC, ABBCCB, ABCBBC. Care este următorul șir care va fi generat?
ACCBBBABCBCBABCCBBABBBCCACBBBCBABCCB
Șirurile apar în ordine lexicografică (A < B < C): backtracking-ul modifică întâi ultima poziție care mai poate primi un simbol mai mare.După ABCBBC, prefixul ABCB poate continua și cu CB (rămân de pus un B și un C), deci următorul șir este ABCBCB; abia apoi urmează ABCCBB.Fie un graf neorientat cu n noduri (n≥1). Care este numărul maxim de muchii ale grafului?
- n∗(n−1)/2
- n∗(n+1)/2
- n−1
- 2∗n
- n∗n
- n+1
Numărul de muchii este maxim când graful este complet: fiecare pereche de noduri distincte este unită printr-o muchie.Numărul perechilor este Cn2=2n(n−1).