Algoritimni loyihalash


bool is_injective(int* arr, int n) {


Download 0.55 Mb.
Pdf ko'rish
bet3/5
Sana17.06.2023
Hajmi0.55 Mb.
#1549394
1   2   3   4   5
Bog'liq
Bekzod Ro\'ziyev 3-mustaqil ishi algoritimni loyihalash

bool is_injective(int* arr, int n) { 
set s; 
for (int i = 0; i < n; i++) { 
if (s.find(arr[i]) == s.end()) { 
s.insert(arr[i]); 
} else { 
return false; 
 

return true 

 
2. Surjektiv akslantirishlari 
Surjektiv akslantirishlar quyidagi kod bilan ifodalangan:
bool is_surjective(int* arr, int n, int m) { 
 set s; 
 for (int i = 0; i < n; i++) { 
 if (arr[i] >= 1 && arr[i] <= m) { 
s.insert(arr[i]); 


return s.size() == m; 

 
3. Biyektiv akslantirishlari 
Biyektiv funksiyalar quyidagidek kodlar yordamida aniqlanadi:
bool is_bijective(int* arr, int n, int m) { 
 set s; 
 for (int i = 0; i < n; i++) { 
 if (arr[i] >= 1 && arr[i] <= m && s.find(arr[i]) == s.end()) { 
 s.insert(arr[i]); 
 } else { 


10 
 return false; 
 } 
 } 
 return s.size() == m; 

Suryektiv akslantirish, to'plamdagi hamma elementni manbaga 
suratga olib chiqadigan funksiyalarga aytiladi. Quyidagi kod, to'plamdagi 
hamma sonlarni musbat songa ko'paytiradi: 
def suryektiv_funksiya(arr): 
result = [] 
for i in arr: 
if i >= 0: 
result.append(i + 1) 
else: 
result.appeend(i) 
return result: 
Yuqoridagi kod, to'plamdagi har bir sonni tekshiradi va agar son musbat 
bo'lsa, ularni birga qo'shadi. Huddi shu sababli, bu funksiya to'g'ri suryektiv 
hisoblanadi. 
Suryektiv, biyektiv va inyektiv abbildirishlar uchun misol kodlar 
hamkorlik qilinadi. 
Masalan, quyidagi funksiya inyektiv va biyektiv: 

Download 0.55 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling