You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建每个元素为前一个两倍的向量?对rep函数适用性存疑

创建等比数列向量的正确方法

你选rep()函数确实走偏了——rep()的核心是重复已有元素,而你要的是2的幂次构成的等比数列,直接用幂运算或专门的序列生成函数更高效:

方法一:幂运算直接生成

这是最直观的方式,利用2的整数次幂来构造:

# 生成前5项:1、2、4、8、16
vec <- 2^(0:4)

调整0:4里的数字就能控制项数,比如要前10项就改成0:9。

方法二:用seq()指定公比

seq()函数支持通过ratio参数生成等比数列:

# 从1开始,公比为2,生成5个元素
vec <- seq(from = 1, ratio = 2, length.out = 5)

这种方式更清晰,参数直接对应数列的起始值、公比和长度。

题外话:硬用rep()的绕路方式

如果非要用rep(),也能实现,但完全没必要这么折腾:

vec <- Reduce(function(x, y) x*2, rep(2, 4), init = 1)

本质是重复调用乘法逻辑,远不如前两种方法简洁。

内容的提问来源于stack exchange,提问作者Jamie Simeone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 13:27:41