Created
February 16, 2023 12:28
-
-
Save Miron-Anosov/4c102468cbd3ce1e79227d09c36f520c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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