import numpy as np # vrste lista lista = [1, 2, 3] lista_np = np.array(lista) print(lista == lista_np) # stringovi string_1 = 'Statisticki' string_2 = 'softver' string_3 = 4 string_objedinjeni = string_1 + ' ' + string_2 + ' ' + str(string_3) # (1) Napisati funkciju koja na gore navedeni nacin objedinjuje proizvoljan broj # reci. def objedinitelj(vektor_reci): rezultat = '' for rec in vektor_reci: if len(rezultat) == 0: rezultat = rec else: rezultat += ' ' + rec return rezultat objedinitelj(['Statisticki', 'softver', '4']) # Napisati funkciju koja za proizvoljnu listu brojeva # vraca duzinu # (a) za najduzi rastuci podniz uzastopnih brojeva # (b) za najduzi rastuci u listi (ne nuzno uzastopno). # Primer (a) : [1, 4, 6, 7, 2, 3] -> [1, 4, 6, 7] tj duzina 5 # Primer (b): [1, 4, 3, 5] -> [1, 4, 5] ili [1, 3, 5] tj duzina 3 def uzastopni_najduzi(vektor): rezultat = [] for i in range(len(vektor)): for j in range(len(vektor)): if (vektor[i:(j + 1)] == np.sort(vektor[i:(j + 1)])).all() and len(vektor[i:(j + 1)]) > len(rezultat): rezultat = vektor[i:(j + 1)] return rezultat print(uzastopni_najduzi(np.array([24, 8, 1, 2, 3, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 56]))) print(uzastopni_najduzi(np.array([24, 8, 1, 2, 3, 7, 8, 2, 3]))) def neuzastopni_najduzi(vektor): # Deklarisemo listu dovoljne duzine: lista = [1] * len(vektor) indeksi = [] # petlje za racunanje for i in range(1, len(vektor)): for j in range(0, i): if vektor[i] > vektor[j] and lista[i] < lista[j] + 1: lista[i] = lista[j] + 1 indeksi.append(lista[j]+1) maksimum = 0 for i in range(len(vektor)): maksimum = max(maksimum, lista[i]) print(lista) print(indeksi) print(vektor[list(set(indeksi))]) return maksimum vektor = np.array([10, 22, 9, 33, 21, 50, 41, 60]) print("Najduze je:", neuzastopni_najduzi(vektor))