hozer

jDay

Jun 2nd, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. from numpy import poly1d
  2. import numpy
  3. import math
  4.  
  5. def vmdk(coef):
  6.     k = -1
  7.     a = 0
  8.     for i in range(len(coef)):
  9.         if coef[i] < 0:
  10.             k = i
  11.             break
  12.    
  13.     for i in range(len(coef)):
  14.         if coef[i] < 0 and abs(coef[i]) > a:
  15.             a = abs(coef[i])
  16.     if k == 0:
  17.         return False
  18.     return numpy.around((a/coef[0])**(1/k), 0) + 1
  19.  
  20. def printT(tabl):
  21.     for r in tabl:
  22.         print(r)
  23.  
  24. def zchange(arr, i):
  25.     c = 0
  26.     z = arr[0][i]
  27.     for k in range(len(arr)):
  28.         if z == -arr[k][i]:
  29.             z = arr[k][i]
  30.             c += 1
  31.     return c
  32.  
  33. coef = input("Input coef: ").split()
  34. for i in range(len(coef)):
  35.     coef[i] = float(coef[i])
  36.    
  37. f = []
  38. f.append(poly1d(coef))
  39. f.append(poly1d(coef).deriv())
  40.  
  41. while len(f[-1]) > 0:
  42.     tmp, ft = f[-2]/f[-1]
  43.     f.append(-ft)
  44.  
  45. tabl = []
  46.  
  47. for fp in f:
  48.     row = []
  49.     row.append(fp(-10000)/abs(fp(-10000)))
  50.     row.append(fp(0)/abs(fp(0)))
  51.     row.append(fp(10000)/abs(fp(10000)))
  52.     tabl.append(row)
  53.  
  54. printT(tabl)
  55.  
  56. for i in range(len(tabl)):
  57.     print(zchange(tabl, i))
Advertisement
Add Comment
Please, Sign In to add comment