Найти текущее значение переменной, которая со временем линейно обесценивается - PullRequest
1 голос
/ 27 мая 2010

Допустим, у нас есть пустая ванна. Мы потеряли пробку, поэтому после добавления воды она будет стекать с постоянной скоростью 2 литра пр. минута. Мы добавляем воду в ванну постепенно. 60 литров в 10:51, 30 литров в 11:54 и 50 литров в 13: 18.

Итак, вопрос: как я могу узнать, сколько воды в ванне в любой момент времени?

Ответы [ 2 ]

0 голосов
/ 27 мая 2010

Предположим, вы моделируете непрерывный процесс ...

var waterIn = Vbath
var startTime = now()

procedure add_water(var liters) {
  waterIn = how_much_water();
  waterIn = waterIn + liters
  startTime = now()
}

function how_much_water() {
  var waterNow = waterIn - (now() - startTime) * leakSpeed
  if waterNow < 0 return 0 else return waterNow
}
0 голосов
/ 27 мая 2010
water_in_tub(t) = if (t<10:51) then
    0  
else if (10:51<t<11:54) then
    min(60-2*(minutes since 10:51),0)
and so forth

И, конечно, как я уверен, другие укажут, ваша модель воды, вытекающей из ванны, неверна, Закон Торичелли гораздо точнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...