Problem: mam tablice w której mogą byc wartosci od 0 do 51 chciałbym sprawdzić czy conajmniej 5 z tych wartości należy do któregoś z przedziałów [0:12], [13:25], [26:38] lub [39:51]
oczywiscie tablica posortowana
Czy da sie to zrobić bez uzycia pętli czy tylko forem leciec po kolejnych elementach?
@kostur86: @SteveStifler: dla dobrych prędkości/dużych list jesli nie chce się używać pętli to de facto wystarczy użyć generatora (np filter()), dzięki temu można wykonać szukanie też na nieposortowanym zbiorze i tylko tak długo, aż nie zostanie znaleziony piąty pasujący element - czyli optymistycznie złożoność jest stała o(1) - wykona 5 sprawdzeń, pesymistycznie wykona o(n) sprawdzeń - tutaj jednak złożoność dla posortowanej tablicy nie ulega znaczącej poprawie, chyba żeby
Problem:
mam tablice w której mogą byc wartosci od 0 do 51
chciałbym sprawdzić czy conajmniej 5 z tych wartości należy do któregoś z przedziałów [0:12], [13:25], [26:38] lub [39:51]
oczywiscie tablica posortowana
Czy da sie to zrobić bez uzycia pętli czy tylko forem leciec po kolejnych elementach?
próbowałem za pomocą:
tablica = [0, 1, 2, 3, 4, 22, 23]
tablica[0:5] in range(0:12) - nie zadziałało i wywaliło false
Komentarz usunięty przez autora
[0,1,2,3,4] in [0,1,2,3,4,5,6,7,8,9,10,11,12] - co zwraca false,
[0,1,2,3,4] in [[0,1,2,3,4],0,1,2,3,4,5,6,7,8,9,10,11,12] - zwróciłoby true
tablica = [0, 1, 2, 3, 4, 22, 23]
aRange = range(0,12)
isInRange = sum( [ int( i ) in aRange for i in tablica ] ) >= 5
print(
bo forem to kazdy frajer machnie ( ͡° ͜ʖ ͡°)