我正在尝试解决一个有点像这样的“腐烂”难题:
假设 A 在 DateTime.new(2012,5,10,0,0,0) 处为 100,并且每 12 秒衰减 0.5,它是否在 DateTime.new(2012,5,10,0,8, 0)?
碰巧这个问题的答案是 - 嗯,真的:)
但是关于
- 一个存在 1304.5673,
- 每 1.2 毫秒衰减 0.00000197
- 并且结束时间不是一而是 2000 DateTime.new
我试过了
fd=3.minutes.ago.to_datetime
td=Time.now
material=1304.5673
decay=0.00000197
step=0.00012.seconds
fd.step(td,step){ |n| material-=decay }
puts material
并且处理时间是可以接受的——但是如果我再往后退一步(可能是 10 小时甚至 2 小时;我的 CPU 冷却器开始积聚动力,就像它即将推动整个 Mac 进入轨道一样:(