diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/solution.py b/solution.py new file mode 100644 index 0000000..43ab21f --- /dev/null +++ b/solution.py @@ -0,0 +1,78 @@ +def Newton(n, m): + + if(m > n/2): + m = n-m + licznik = 1 + for i in range(n-m+1, n+1): + licznik *= i + mianownik = 1 + for i in range(1, m+1): + mianownik *= i + return licznik/mianownik + + + +def Pascal(n): + i = 1 + triangle = [[1]] + while i < n: + temp = [1] + for j in range(1, i): + temp.append(triangle[i-1][j-1] + triangle[i-1][j]) + temp.append(1) + triangle.append(temp) + i += 1 + return triangle + + +def LotOfHash(n): + triangle = Pascal(n) + for row in triangle: + temp = "" + for elem in row: + if elem % 2 == 1: + temp += "#" + else: + temp += " " + print temp + + +def PowerModulo(a, b, n): + + binary = bin(b)[2:] + wynik = 1 + i = 0 + m = a % n + while i < len(binary): + if binary[-1-i] == "1": + wynik = wynik*m % n + i += 1 + m = pow(m, 2) % n + return wynik + + + +def Intersect(a,b): + x1, y1, r1 = a + x2, y2, r2 = b + + def norm(a, b): + return pow(pow(a,2) + pow(b,2), 0.5) + + l = norm(x1 - x2, y1- y2) + w = [(x2 - x1) / l, (y2 - y1) / l] + if l > r1 + r2: + return [] + + elif l == r1 + r2: + inter = (x1 + w[0]*r1, y1 + w[1]*r1) + return [inter] + + else: + x = (pow(l,2) + pow(r1, 2) - pow(r2, 2))/(2*l) + h = pow(pow(r1,2) - pow(x,2), 0.5) + inter1 = (x1 + x*w[0] + h*w[1], y1 + x*w[1] - h*w[0]) + inter2 = (x1 + x*w[0] - h*w[1], y1 + x*w[1] + h*w[0]) + return [inter1, inter2] + + diff --git a/test.py b/test.py new file mode 100644 index 0000000..e69de29