statheist

Убийца ротора

Apr 27th, 2022 (edited)
667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.36 KB | None | 0 0
  1. import math
  2.  
  3. def radius(x,y):
  4.     if 42 <= (math.sqrt(math.pow(x, 2) + math.pow(y, 2))) <=88:
  5.         return (math.sqrt(math.pow(x, 2) + math.pow(y, 2)))
  6.     else:
  7.         return False
  8.  
  9. "Подстановка своих значений"
  10. m2=50
  11. m3=60
  12. z2=160
  13. z3=240
  14. z4=400  #второй неизвестный диск
  15. z1=80   #первый неизвестный диск
  16. x2= 45.0534
  17. y2= 31.5467
  18. x3=-45.9619
  19. y3=45.9619
  20.  
  21.  
  22. Znach=[]
  23. e1=1000000
  24. e2=1000000
  25. for x1 in range(-88,89):
  26.     for y1 in range(-88,89):
  27.         if radius(x1,y1):
  28.             for m1 in range(40,80,10):
  29.                 for m4 in range(40,80,10):
  30.                     x4= (-m1*x1*z1 - m2*x2*z2 - m3*x3*z3) / (m4*z4)
  31.                     if -88 <= x4 <= 88 :
  32.                         y4 = (-m1*y1*z1 - m2*y2*z2 - m3*y3*z3) / (m4*z4)
  33.                         if -88 <= y4 <= 88:
  34.                             if radius(x4,y4):
  35.                                 if abs(m1 * x1  + m2 * x2  + m3 * x3  + m4 * x4)<=e1 and abs(m1 * y1 + m2 * y2  + m3 * y3  + m4 * y4 )<=e2:
  36.                                     e1=abs(m1 * x1  + m2 * x2  + m3 * x3  + m4 * x4)
  37.                                     e2=abs(m1 * y1 + m2 * y2  + m3 * y3  + m4 * y4 )
  38.                                     Znach.append(list(map(float,(x1, y1, m1,radius(x1,y1), x4, y4, m4,radius(x4,y4),e1,e2,(m1 * x1*z1  + m2 * x2*z2  + m3 * x3*z3  + m4 * x4*z4),(m1 * y1*z1 + m2 * y2*z2  + m3 * y3*z3  + m4 * y4*z4 )))))
  39.  
  40. print("Человек, сколько наилучших вариантов я тебе должен показать?")
  41. n=int(input())
  42.  
  43. if n==1:
  44.     print(end='\n')
  45.     print( "Лучший результат (e1=%f,e2=%f)"%(Znach[int(len(Znach)-1)][8],Znach[int(len(Znach))-1][9]),end="\n")
  46.     print("     Для первого неизвестного диска x=%f    y=%f   m=%d   r=%f   Alfa=%f    z=%d"%(Znach[int(len(Znach)-1)][0],Znach[int(len(Znach)-1)][1],Znach[int(len(Znach)-1)][2],Znach[int(len(Znach)-1)][3],math.degrees(math.atan2(Znach[int(len(Znach))-1][0],Znach[int(len(Znach))-1][1])),z1),end="\n")
  47.     print("     Для второго неизвестного диска x=%f    y=%f   m=%d   r=%f   Alfa=%f    z=%d"%(Znach[int(len(Znach)-1)][4],Znach[int(len(Znach)-1)][5],Znach[int(len(Znach)-1)][6],Znach[int(len(Znach)-1)][7],math.degrees(math.atan2(Znach[int(len(Znach))-1][4],Znach[int(len(Znach))-1][5])),z4),end="\n")
  48.     print("Это было легко")
  49.  
  50. elif n>1 and (len(Znach)>=n):
  51.     print(end='\n')
  52.     print("Лучший результат (e1=%f,e2=%f)" % (Znach[int(len(Znach) - 1)][8], Znach[int(len(Znach)) - 1][9]), end="\n")
  53.     print("     Для первого неизвестного диска x=%f    y=%f   m=%d   r=%f   Alfa=%f    z=%d" % (
  54.     Znach[int(len(Znach) - 1)][0], Znach[int(len(Znach) - 1)][1], Znach[int(len(Znach) - 1)][2],
  55.     Znach[int(len(Znach) - 1)][3],
  56.     math.degrees(math.atan2(Znach[int(len(Znach)) - 1][0], Znach[int(len(Znach)) - 1][1])), z1), end="\n")
  57.     print("     Для второго неизвестного диска x=%f    y=%f   m=%d   r=%f   Alfa=%f    z=%d" % (
  58.     Znach[int(len(Znach) - 1)][4], Znach[int(len(Znach) - 1)][5], Znach[int(len(Znach) - 1)][6],
  59.     Znach[int(len(Znach) - 1)][7],
  60.     math.degrees(math.atan2(Znach[int(len(Znach)) - 1][4], Znach[int(len(Znach)) - 1][5])), z4), end="\n\n")
  61.     for i in range(2,n+1):
  62.         print("Результат №%d"%(i),end="\n")
  63.         print("     Для первого неизвестного диска x=%f    y=%f   m=%d   r=%f   Alfa=%f    z=%d" % (
  64.         Znach[int(len(Znach) - 1)][0], Znach[int(len(Znach) - i)][1], Znach[int(len(Znach) - i)][2],
  65.         Znach[int(len(Znach) - i)][3],
  66.         math.degrees(math.atan2(Znach[int(len(Znach)) - i][0], Znach[int(len(Znach)) - i][1])), z1), end="\n")
  67.         print("     Для второго неизвестного диска x=%f    y=%f   m=%d   r=%f   Alfa=%f    z=%d" % (
  68.         Znach[int(len(Znach) - i)][4], Znach[int(len(Znach) - i)][5], Znach[int(len(Znach) - i)][6],
  69.         Znach[int(len(Znach) - i)][7],
  70.         math.degrees(math.atan2(Znach[int(len(Znach)) - 1][4], Znach[int(len(Znach)) - 1][5])), z4), end="\n\n")
  71.     print("Я дал тебе всё, что ты хочешь, человек, могу ли я попросить теперь меня не бить ?")
  72.  
  73. else:
  74.     print("Бип-буп-б****п-пу****")
  75.  
Add Comment
Please, Sign In to add comment