Skip to content

Instantly share code, notes, and snippets.

@Miron-Anosov
Created February 16, 2023 12:28
Show Gist options
  • Save Miron-Anosov/4c102468cbd3ce1e79227d09c36f520c to your computer and use it in GitHub Desktop.
Save Miron-Anosov/4c102468cbd3ce1e79227d09c36f520c to your computer and use it in GitHub Desktop.
print('Задача 6. Яйца')
# В рамках программы колонизации Марса
# компания «Спейс Инжиниринг» вывела особую породу черепах,
# которые, по задумке, должны размножаться, откладывая яйца в марсианском грунте.
# Откладывать яйца слишком близко к поверхности опасно из-за радиации,
# а слишком глубоко — из-за давления грунта и недостатка кислорода.
# Вообще, факторов очень много,
# но специалисты проделали большую работу и предположили,
# что уровень опасности для черепашьих яиц рассчитывается по формуле
# D = x**3 − 3x**2 − 12x + 10,
# где x — глубина кладки в метрах,
# а D — уровень опасности в условных единицах.
#
# Для тестирования гипотезы
# нужно взять пробу грунта на безопасной, согласно формуле, глубине.
#
# Напишите программу,
# находящую такое значение глубины "х", при котором уровень опасности как можно более близок к нулю.
# На вход программе подаётся максимально допустимое отклонение уровня опасности от нуля,
# а программа должна рассчитать приблизительное значение "х",
# удовлетворяющее этому отклонению.
#
# Известно, что глубина точно больше нуля и меньше четырёх метров.
#
# Обеспечьте контроль ввода.
#
# Пример:
# Введите максимально допустимый уровень опасности: 0.01
#
# Приблизительная глубина безопасной кладки: 0.732421875 м
def Check(danger):
if danger > 18:
print('Привышен максимальный уровень опасности!')
Start()
else:
x = PointD(danger)
return x
def PointD(danger):
min_depth = 0
max_depth = 4
x = (min_depth + max_depth) / 2
d = (x ** 3) - (3 * x ** 2) - (12 * x) + 10
while abs(d) > danger:
if d > 0:
min_depth = x
else:
max_depth = x
x = (min_depth + max_depth) / 2
d = (x ** 3) - (3 * x ** 2) - (12 * x) + 10
return x
def Start():
danger = float(input('Введите максимальный допустимый уровень опасности: '))
x = Check(danger)
print('Приблизительная глубина безопасной кладки:', x, 'm')
Start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment