#python #math
#python #математика
Вопрос:
я получил задание, которое должно определить, какое из них является самым высоким, самым низким или средним
предположим, что значение трех переменных x, y, z будет задано случайным образом, и мы не знаем значения.
и мы не можем использовать min(), max ()
можно использовать только числовые сравнения, логические и abs функции
я трачу так много времени, пытаясь разобраться, но все еще застрял.
это пример одного из моего кода, но это не работает, когда y — наибольшее число из-за этой строки
«range_between_middle_max = abs(max_yx — max_zx) abs(max_zx — max_zy)»
x = 23
y = 14
z = 123
range_yx = abs(x - y)
middle_yx = (x y) / 2
max_yx = middle_yx (range_yx / 2)
range_zx = abs(x - z)
middle_zx = (x z) / 2
max_zx = middle_zx (range_zx / 2)
range_zy = abs(z - y)
middle_zy = (z y) / 2
max_zy = middle_zy (range_zy / 2)
range_between_middle_max = abs(max_yx - max_zx) abs(max_zx - max_zy)
middle = abs(abs(max_yx - max_zx) - max_zy)
highest = middle range_between_middle_max
lowest = (x y z) - (middle highest)
print(highest)
print(middle)
print(lowest)
Комментарии:
1. Как бы вы это сделали, используя ручку и бумагу?
Ответ №1:
Мы можем обрабатывать результаты сравнения как числа, чтобы избежать использования if-else:
xBz = x >= z
yBz = y >= z
xBy = x >= y
zBy = z > y
yBx = y > x
zBx = z > x
max = xBz * xBy * x yBz * yBx * y zBy * zBx * z
min = zBx * yBx * x zBy * xBy * y yBz * xBz * z