-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsottosequenze.py
104 lines (80 loc) · 2.69 KB
/
sottosequenze.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from itertools import combinations
sottosequenza = [8,10,11,12,4,18,6,7,14,10,18,20]
num_tot = len(sottosequenza)
sottoseq_possibili_tot = []
sottoseq_possibili = []
sottoseq_lenght = []
sottoseq_valuein = []
def crescente(lista, index_data):
if not lista[index_data-1] <= lista[index_data]: return True
def strettamente_crescente(lista, index_data):
if not lista[index_data-1] < lista[index_data]: return True
def decrescente(lista, index_data):
if not lista[index_data-1] >= lista[index_data]: return True
def strettamente_decrescente(lista, index_data):
if not lista[index_data-1] > lista[index_data]: return True
def printer(lista):
for el in lista:
print(el, end=" ")
def get_sequenze_lun(lenght):
for e in sottoseq_possibili:
if len(e)==lenght:
sottoseq_lenght.append(e)
sottoseq_lenght.sort()
return len(sottoseq_lenght)
def calcolo_valore(lista_valori):
risultato=1 ###################
for e in lista_valori:
risultato *= e ##################################
return risultato
def max_(lista):
massimo=[lista[0]]
lista_def=lista
lista_def.remove(lista_def[0])
for e in lista_def:
if calcolo_valore(massimo[0]) == calcolo_valore(e):
massimo.append(e)
elif calcolo_valore(massimo[0]) < calcolo_valore(e):
massimo=[e]
return massimo
def min_(lista):
minimo=[lista[0]]
lista_def=lista
lista_def.remove(lista_def[0])
for e in lista_def:
if calcolo_valore(minimo[0]) == calcolo_valore(e):
minimo.append(e)
elif calcolo_valore(minimo[0]) > calcolo_valore(e):
minimo=[e]
return minimo
def value_in_list(lista, value, position=404):
for e in lista:
if position == 404:
if value in e:
sottoseq_valuein.append(e)
else:
if e[position]==value:
sottoseq_valuein.append(e)
return len(sottoseq_valuein)
for e in range (0, num_tot):
p=e+1
com=list(combinations(sottosequenza, p))
for n in com:
sottoseq_possibili_tot.append(list(n))
for sot in sottoseq_possibili_tot:
for data in range(1, len(sot)):
if crescente(sot, data): #################################
break
else:
sottoseq_possibili.append(sot)
sottoseq_possibili.sort(key=len)
printer(sottoseq_possibili)
print("\n\n")
get_sequenze_lun(4) #########################sottoseq_lenght
printer(sottoseq_lenght)
print("\n\n")
print("Max_Totale:", max_(sottoseq_lenght), "\n") ###########
print("Min_Totale:", min_(sottoseq_lenght), "\n") ###########
print("\n\n")
value_in_list(sottoseq_lenght, 6, position=0)
printer(sottoseq_valuein)