-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathfunctions.py
68 lines (53 loc) · 1.3 KB
/
functions.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
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#Medidas de Tendência Central
def media(v):
return sum(v) / len(v)
def moda(v):
b, modas = 2, []
for i in v:
a = v.count(i)
if a > b:
b, modas = a, [i]
elif a == b and i not in modas:
modas.append(i)
modas.sort()
return modas
def mediana(v):
v.sort()
if len(v) % 2 == 0:
return media([v[int(len(v) / 2) - 1], v[int(len(v) / 2)]])
else:
return v[int(len(v) / 2)]
#Medidas de Dispersão
def amplitude(v):
return max(v) - min(v)
def desvio_medio(v):
return media([abs(i - media(v)) for i in v])
def variancia(v):
return media([pow(i - media(v), 2) for i in v])
def desvio_padrao(v):
return pow(variancia(v), .5)
#Análise Combinatória
def fatorial(n):
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n - 1)
def arranjo(n, p):
return fatorial(n) / fatorial(n-p)
def arranjo_rep(n, p):
return pow(n, p)
def combinacao(n, p):
return arranjo(n, p) / fatorial(p)
def combinacao_rep(n, p):
return combinacao(n + p - 1, p)
def permutacao(n):
return fatorial(n)
def permutacao_rep(n, r):
n = fatorial(n)
for i in r:
n /= fatorial(i)
return n
def permutacao_circular(n):
return permutacao(n - 1)