Find quartiles of a list


In [3]:
# Enter your code here. Read input from STDIN. Print output to STDOUT
n = int(input())
m = list(map(int, input().split()))
m.sort()

def even_quartiles(m, n):
    i = n // 2
    q2 = (m[i] + m[i - 1]) / 2
    sh = m[i:]
    fh = m[:i]
    j = len(fh)
    k = j // 2
    if j % 2 == 0:
        q1 = (fh[k] + fh[k -1]) / 2
        q3 = (sh[k] + sh[k -1]) / 2
    else:
        q1 = fh[k]
        q3 = sh[k]
    return([q1, q2, q3])

def odd_quartiles(m, n):
    i = n // 2
    q2 = m[i]
    del m[i]
    fh = m[i:]
    sh = m[:i]
    j = len(fh)
    k = j // 2
    if j % 2 == 0:
        q1 = (fh[k] + fh[k -1]) / 2
        q3 = (sh[k] + sh[k -1]) / 2
    else:
        q1 = fh[k - 1]
        q3 = sh[k - 1]
    return([q3, q2, q1])

if n % 2 == 0:
    out = even_quartiles(m, n)
else:
    out = odd_quartiles(m, n)

for i in out:
    print(int(i))


1
1
2

Binomial Distribution

Given:

  1. Log Odds
  2. Number of trials

Find at least 3 success


In [2]:
from math import factorial
from functools import partial

n, m = map(float, input().split())

def binomial(n, p, x):
    term1 = factorial(n) / (factorial(x) * factorial(n - x))
    term2 = (p**x) * (1.0 - p)**(n - x)
    return(term1*term2)

p = n / (n + m)
bfunc = partial(binomial, 6, p)
prob = 0
for j in range(3, 7):
    prob += bfunc(j)
print("%.3f" %prob)


0.696

In [ ]: