Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from itertools import combinations as cb
- from numpy import prod #просто произведение всех чисел в контейнере
- #functions are here:=========================================================================
- def Dispenser(tmp):
- if(type(tmp) is not str): raise TypeError
- array = tmp.split()
- for c in range(array.__len__()):
- array[c] = float(array[c])
- return array
- def Combinator(Raw:'list'):
- List = list()
- for c in range(len(Raw)):
- TmpList = list()
- for p in range(len(Raw)):
- if c != p: TmpList.append(Raw[p])
- List.append(TmpList)
- return List
- def Generator(Raw:'list'):
- List = list()
- for c in range(len(Raw)+1):
- List.append([var for var in cb(Raw, c)])
- return List
- def Calculator(Raw:'list', Coefficient:'float', Final:'list'):
- for i, ls in enumerate(Raw):
- for j, tpl in enumerate(ls):
- ls[j] = prod(tpl)
- Final[i] *= Coefficient*sum(ls)
- return Final
- def GetCoefficients(RawX:'list', RawY:'list'):
- Result = list()
- for i in range(len(RawY)):
- Denominator = 1
- for j in range(len(RawX)):
- if i != j: Denominator *= (RawX[i] - RawX[j])
- Result.append(RawY[i]/Denominator)
- return Result
- #main program:================================================================================
- RawX = input('Enter x points: ')
- RawY = input('Enter y points: ')
- RawX = Dispenser(RawX)
- RawY = Dispenser(RawY)
- Final = list([1 for element in range(len(RawX))])
- Coefficients = GetCoefficients(RawX, RawY,)
- RawMaterial = Combinator(RawX)
- for i, ls in enumerate(RawMaterial):
- RawMaterial[i] = Generator(ls)
- for i, coef in enumerate(Coefficients):
- Final = Calculator(RawMaterial[i], coef, Final)
- for coef in Final:
- print(coef)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement