如何在 R 中生成几何级数中的数字序列?例如,我需要生成序列:1、2、4、8、16、32 等等......直到说一个有限值?
问问题
15065 次
3 回答
10
这是我要做的:
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
于 2012-06-19T05:37:15.063 回答
7
为什么不直接输入 2^(0:n)?例如 2^(0:5) 让你从 1 到 32 等等。通过分配给如下变量来捕获向量:x <- 2^(0:5)
于 2012-06-19T05:32:04.853 回答
4
您可以使用此数学函数找到几何序列中的任何项:
术语 = 开始 * 比率 ** (n-1)
其中:
term = 您想要
开始的序列中的项 = 序列中的第一项
比率 = 共同比率(即定义序列的倍数)
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
于 2014-10-31T19:34:39.877 回答