Ruby 给定;T、 总数“;及;N、 “天数”;,如何将T除以N,使n1+;n2。。。在指数曲线中等于T?

Ruby 给定;T、 总数“;及;N、 “天数”;,如何将T除以N,使n1+;n2。。。在指数曲线中等于T?,ruby,time,formula,Ruby,Time,Formula,我正在为一个应用程序创建虚拟数据,并希望模拟指数增长,同时也知道最终的数字。因此,建议如下: 给定T=2000。事件将发生的“计数”总数 和N=7。一周中的几天:7.Days.ago.day..Time.now.day 用T除以N以创建指数曲线的最简单公式是什么 你是如何着手解决这个问题的,这样我就可以学习你如何处理实际的数学问题了?我想把这个公式应用于3种不同的T:2000、1000和400 更新 多亏了Mathias的公式,我得出了以下结论: # get "r" # in math x(

我正在为一个应用程序创建虚拟数据,并希望模拟指数增长,同时也知道最终的数字。因此,建议如下:

  • 给定
    T
    =2000。事件将发生的“计数”总数
  • N
    =7。一周中的几天:
    7.Days.ago.day..Time.now.day
  • T
    除以
    N
    以创建指数曲线的最简单公式是什么
你是如何着手解决这个问题的,这样我就可以学习你如何处理实际的数学问题了?我想把这个公式应用于3种不同的
T
:2000、1000和400

更新

多亏了Mathias的公式,我得出了以下结论:

# get "r"
# in math
x(t) = (1 + r) ^ t
x(7) = (1 + r) ^ 7 = 2000 # final value
r = (2000 ^ (1/7)) - 1 # solve for r
# in ruby
r = 2000**(1.0/7.0) - 1 = 1.96193629594517

# check
# in math
x(7) = (1 + r) ^ 7 = (1 + 1.96193629594517) ^ 7
# in ruby
(1 + 1.96193629594517)**7
#=> 1999.99999999998

# build curve
values = (1..7).inject([]) { |array, i| array << (1 + r)**i }
values = [2.96193629594517, 8.77306662123741, 25.9852644521882, 76.96669794067, 227.970456209519, 675.233968650155, 2000.0]
#获取“r”
#数学
x(t)=(1+r)^t
x(7)=(1+r)^7=2000#最终值
r=(2000^(1/7))-1#求解r
#红宝石色
r=2000**(1.0/7.0)-1=1.96193629594517
#检查
#数学
x(7)=(1+r)^7=(1+1.96193629594517)^7
#红宝石色
(1 + 1.96193629594517)**7
#=> 1999.99999999998
#构建曲线

值=(1..7).注入([]){|数组,i |数组如果我正确理解了你的问题,你有一个遵循指数增长的过程,在这个过程中你知道最终值X,并且你以离散的时间间隔观察这个过程。
当减少到离散时间间隔时,指数增长以几何级数的形式进行,即
X(t+1)=X(t)*(1+r),其中r是增长率。
为了推断增长,您需要知道起始值或速率。我假设您有X(0),初始值。在这种情况下,
X(T)=X(0)*(1+r)^T
你可以在r中求解,增长率: (1+r)=(X(T)/(X(0))^(1/T)
希望这有帮助