Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- # m2 = 70
- # r2 = 50
- # a2 = 150
- # x2 = -43.3
- # y2 = 25
- # z2 = 160
- # m3 = 40
- # r3 = 85
- # a3 = 80
- # x3 = 14.8
- # y3 = 83.7
- # z3 = 240
- # z4 = 320
- # z1 = 80
- # a = [] import math
- # Znach=[[m2,m3,r3]]
- # for i in range(3):
- # Znach.append(list(map(int, input().split())))
- # print(Znach)
- # Znach = [['x4', 'y4', 'm4', 'x1', 'y1', 'm1','e']]
- # e = 10000
- #
- # for x4 in range(-88, 88): # подбор от -88мм до 88мм с шагом 1мм
- # for y4 in range(-88, 88):
- # if 42 <= (math.sqrt(math.pow(x4, 2) + math.pow(y4, 2))) <= 88: # 42 <= r4 <= 88
- # for x1 in range(-88, 88):
- # for y1 in range(-88, 88):
- # if 42 <= (math.sqrt(math.pow(x1, 2) + math.pow(y1, 2))) <= 88:
- # for m4 in range(40, 80, 10): # подбор массы от 40 до 70 с шагом 10
- # for m1 in range(40, 80, 10):
- # if (abs(m1*x1 + m2*x2 + m3*x3 + m4*x4)<=e) and (abs(m1*y1 + m2*y2 + m3*y3 + m4*y4)<=e) and (abs(m1*x1*z1 + m2*x2*z2 + m3*x3*z3 + m4*x4*z4)<=e) and (abs(m1*y1*z1 + m2*y2*z2 + m3*y3*z3 + m4*y4*z4)<=e):
- # Znach.append(list(map(int, (x4, y4, m4, x1, y1, m1,e)))) # добавление строк, из подходящих значений, в матрицу
- # print(Znach)
- m2=50
- m3=60
- z2=160
- z3=240
- z4=320
- z1=80
- x2= 45.0534
- y2= 31.5467
- x3=-45.9619
- y3=45.9619
- # вычисление х4 у4 из 1 и 2 уравнений
- # e=350000
- # for x1 in range(-88,89):
- # for y1 in range(-88,89): # подбор игриков от -88 до 88
- # if 42 <= (math.sqrt(math.pow(x1, 2) + math.pow(y1, 2))) <= 88: # проверка для радиуса от 42 до 88
- # for m1 in range(40,80,10): # подбор массы от 40 до 70 с шагом 10
- # for m4 in range(40,80,10):
- # if -88 <= (-m1*x1 - m2*x2 - m3*x3)/m4 <=88: # границы для х4 от -88 до 88
- # x4=(-m1*x1 - m2*x2 - m3*x3)/m4 # выражаем х4 из первого уравнения
- # if -88 <= (-m1*y1 - m2*y2 - m3*y3)/m4 <= 88: # проверка на границы у4 от -88 до 88
- # y4= (-m1*y1 - m2*y2 - m3*y3)/m4 # выражаем y4 из второго уравнения
- # if 42 <= (math.sqrt(math.pow(x4, 2) + math.pow(y4, 2))) <= 88: # проверка r4 от 42 до 88
- # if abs(m1 * x1 * z1 + m2 * x2 * z2 + m3 * x3 * z3 + m4 * x4 * z4)<=e and abs(m1 * y1 * z1 + m2 * y2 * z2 + m3 * y3 * z3 + m4 * y4 * z4)<=e: # третье и четвертое уравнение
- # print(x1,y1,m1,x4,y4,m4,m1 * x1 + m2 * x2 + m3 * x3 + m4 * x4,m1 * y1 + m2 * y2 + m3 * y3 + m4 * y4,m1 * x1 * z1 + m2 * x2 * z2 + m3 * x3 * z3 + m4 * x4 * z4,m1 * y1 * z1 + m2 * y2 * z2 + m3 * y3 * z3 + m4 * y4 * z4)
- # вычисление х4 у4 из 1 и 2 уравнений
- # e=10000
- # for x1 in range(-88,89):
- # print(end='\n\n')
- # print(x1)
- # for y1 in range(-88,89): # подбор игриков от -88 до 88
- # print(x1, y1, "r1=",math.sqrt(math.pow(x1, 2) + math.pow(y1, 2))) #-----
- # if 42 <= (math.sqrt(math.pow(x1, 2) + math.pow(y1, 2))) <=88:
- # print('r1 proshel',math.sqrt(math.pow(x1, 2) + math.pow(y1, 2)))
- # for m1 in range(40,80,10): # подбор массы от 40 до 70 с шагом 10
- # for m4 in range(40,80,10):
- # print('x4',(-m1*x1 - m2*x2 - m3*x3)/m4, 'm1=',m1,'m4=',m4)
- # x4 = (-m1 * x1 - m2 * x2 - m3 * x3) / m4 # выражаем х4 из 1 уравнения
- # if -88 <= x4 <= 88: # границы для х4 от -88 до 88
- # print('proverka x4 proshla',)
- # print('y4',(-m1*y1 - m2*y2 - m3*y3)/m4)
- # y4 = (-m1 * y1 - m2 * y2 - m3 * y3) / m4 # выражаем y4 из 2 уравнения
- # if -88 <= y4 <= 88: # проверка на границы у4 от -88 до 88
- # print('proverka y4 proshla')
- # print('r2',math.sqrt(math.pow(x4, 2) + math.pow(y4, 2)))
- # if 42 <= (math.sqrt(math.pow(x4, 2) + math.pow(y4, 2))) <= 88: # проверка r4 от 42 до 88
- # print('r2 proshel', 'eps3=',(m1 * x1*z1 + m2 * x2*z2 + m3 * x3*z3 + m4 * x4*z4), 'eps4=',(m1 * y1*z1 + m2 * y2*z2 + m3 * y3*z3 + m4 * y4*z4))
- # if abs(m1 * x1*z1 + m2 * x2*z2 + m3 * x3*z3 + m4 * x4*z4)<=e and abs(m1 * y1*z1 + m2 * y2*z2 + m3 * y3*z3 + m4 * y4*z4 )<=e: # 3 и 4 уравнение
- # print('URA',x1,y1,m1,x4,y4,m4,m1 * x1 + m2 * x2 + m3 * x3 + m4 * x4,m1 * y1 + m2 * y2 + m3 * y3 + m4 * y4,m1 * x1 * z1 + m2 * x2 * z2 + m3 * x3 * z3 + m4 * x4 * z4,m1 * y1 * z1 + m2 * y2 * z2 + m3 * y3 * z3 + m4 * y4 * z4)
- #
- # вычисление x41 и y41 из 1 и 2 уравнений и сравнение их с x42 и y42, выраженных из 3 и 4 уравнений.
- e=10000
- for x1 in range(-88,89):
- print(end='\n\n')
- print(x1)
- for y1 in range(-88,89): # подбор игриков от -88 до 88
- print(x1, y1, "r1=",math.sqrt(math.pow(x1, 2) + math.pow(y1, 2))) #-----
- if 42 <= (math.sqrt(math.pow(x1, 2) + math.pow(y1, 2))) <=88:
- print('r1 proshel',math.sqrt(math.pow(x1, 2) + math.pow(y1, 2)))
- for m1 in range(40,80,10): # подбор массы от 40 до 70 с шагом 10
- for m4 in range(40,80,10):
- print('x4',(-m1*x1*z1 - m2*x2*z2 - m3*x3)/(m4*z4),(-m1 * x1 - m2 * x2 - m3 * x3) / m4, 'm1=',m1,'m4=',m4)
- x4= (-m1 * x1*z1 - m2 * x2*z2 - m3 * x3*z3) / (m4*z4) #выражаем х4 из 3 уравнения
- if -88 <= x4 <= 88 : # границы для х4 от -88 до 88
- print('proverka x4 proshla',)
- print('y4',(-m1*y1*z1 - m2*y2*z2 - m3*y3*z3)/(m4*z4))
- y4 = (-m1 * y1*z1 - m2 * y2*z2 - m3 * y3*z3) / (m4*z4) # выражаем y4 из 2 уравнения
- if -88 <= y4 <= 88: # проверка на границы у4 от -88 до 88
- print('proverka y4 proshla')
- print('r2',math.sqrt(math.pow(x4, 2) + math.pow(y4, 2)))
- if 42 <= (math.sqrt(math.pow(x4, 2) + math.pow(y4, 2))) <= 88: # проверка r4 от 42 до 88
- print('r2 proshel', 'eps3=',(m1 * x1*z1 + m2 * x2*z2 + m3 * x3*z3 + m4 * x4*z4), 'eps4=',(m1 * y1*z1 + m2 * y2*z2 + m3 * y3*z3 + m4 * y4*z4))
- if abs(m1 * x1*z1 + m2 * x2*z2 + m3 * x3*z3 + m4 * x4*z4)<=e and abs(m1 * y1*z1 + m2 * y2*z2 + m3 * y3*z3 + m4 * y4*z4 )<=e: # 3 и 4 уравнение
- print('URA',x1,y1,m1,x4,y4,m4,m1 * x1 + m2 * x2 + m3 * x3 + m4 * x4,m1 * y1 + m2 * y2 + m3 * y3 + m4 * y4,m1 * x1 * z1 + m2 * x2 * z2 + m3 * x3 * z3 + m4 * x4 * z4,m1 * y1 * z1 + m2 * y2 * z2 + m3 * y3 * z3 + m4 * y4 * z4)
Add Comment
Please, Sign In to add comment