как пересчитать рецепт на другое число человек через пропорцию на питоне
Задали по математике задачу на пропорции, хочу решить в питоне для тренировки. Рецепт блинов рассчитан на 4 человека и нужно 200 г муки. Сколько муки нужно на 6 человек? И ещё похожая про масштаб карты, но давайте сначала с рецептом. Я что-то перемудрил:
muka = 200
bylo = 4
stalo = 6
print(muka + stalo - bylo) # 202, явно бред
Как тут правильно через пропорцию?
2 ответа
Тут не сложение, а пропорция — то есть всё меняется «во столько же раз». Если людей стало в 6/4 = 1.5 раза больше, то и муки нужно в 1.5 раза больше.
muka = 200
bylo = 4
stalo = 6
nado = muka * stalo / bylo
print(nado) # 300.0 г муки на 6 человек
Как это понять. Пропорция — это равенство двух отношений: «200 г относится к 4 людям так же, как X к 6 людям». Записывается 200/4 = X/6. Чтобы найти X, перемножаешь крест-накрест: X = 200 * 6 / 4. Это правило так и называют — «крест-накрест» или «умножить по диагонали».
Про масштаб карты — ровно то же самое. Например масштаб 1:100000 значит «1 см на карте = 100000 см на местности». Сколько метров соответствует 3 см на карте:
masshtab = 100000 # 1 см карты = 100000 см реальности
sm_na_karte = 3
sm_realnost = sm_na_karte * masshtab
metry = sm_realnost / 100 # см в метры
print(metry) # 3000.0 метров = 3 км
Главное в пропорциях — следить, что с чем сравниваешь: люди с людьми, граммы с граммами. Если перепутать местами числитель и знаменатель, ответ перевернётся.
Удобно сделать универсальную функцию пересчёта — пригодится для любого ингредиента:
def pereschitat(kolichestvo, bylo, stalo):
return kolichestvo * stalo / bylo
print(pereschitat(200, 4, 6)) # мука: 300.0
print(pereschitat(3, 4, 6)) # яйца: 4.5 -> округлишь до 5
С яйцами получится дробь (4.5), так что в реальном рецепте округляй в большую сторону math.ceil.