几何级数中的数字

时间:2012-06-19 05:23:16

标签: r sequences

如何生成一系列R中几何级数的数字?例如,我需要生成序列: 1,2,4,8,16,32等......直到说有限值?

3 个答案:

答案 0 :(得分:7)

这就是我要做的事情:

geomSeries <- function(base, max) {
    base^(0:floor(log(max, base)))
}

geomSeries(base=2, max=2000)
# [1]    1    2    4    8   16   32   64  128  256  512 1024

geomSeries(3, 100)
# [1]  1  3  9 27 81

答案 1 :(得分:6)

为什么不输入2 ^(0:n)?例如。 2 ^(0:5)让你从1到32,依此类推。 通过分配如下变量来捕获向量: x < - 2 ^(0:5)

答案 2 :(得分:4)

您可以使用此数学函数在几何序列中找到任何术语:

  

term = start * ratio **(n-1)

其中:

term =您想要的序列中的术语 start =序列中的第一项
ratio =公共比率(即定义序列的倍数)
n =您想要的序列中的术语编号

使用此信息,在R中编写一个函数,为任何开始和比率提供几何序列的任何子集:

#begin = beginning of subset
#end = end of subset

geomSeq <- function(start,ratio,begin,end){
  begin=begin-1
  end=end-1
  start*ratio**(begin:end)
}

geomSeq(1, 2, 1, 10)
# [1]   1   2   4   8  16  32  64 128 256 512

geomSeq(10,3,1,8)
# [1]    10    30    90   270   810  2430  7290 21870

geomSeq(10,3,4,8)
# [1]   270   810  2430  7290 21870

More on geometric sequences