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

如何在R中使用for/while循环正确实现100项Grandi级数

问题根因

Grandi级数的标准序列为1、-1交替排列:1, -1, 1, -1, 1, -1...,你的代码错误点非常直接:每次循环向向量追加1和0,取值完全不符合Grandi级数的定义,生成的自然是错误序列。

循环实现方案

以下分别给出符合要求的while循环、for循环实现,均生成严格符合定义的前100项Grandi序列:

while循环版本

# 初始化存储向量、迭代计数器
grandi <- c()
count <- 1
while (count <= 100) {
  # 奇数位置赋值1,偶数位置赋值-1
  grandi[count] <- ifelse(count %% 2 == 1, 1, -1)
  count <- count + 1
}
print(grandi)

for循环版本

grandi <- c()
for (i in 1:100) {
  # 利用幂运算直接计算当前项值,无需条件判断
  grandi[i] <- (-1)^(i + 1)
}
print(grandi)

效率提示:R中逐次扩展向量的循环写法性能较差,如果你不需要强制用循环实现,直接用向量化操作一行就能得到结果:

grandi <- rep(c(1, -1), 50)

运行结果和上述循环版本完全一致,执行速度快几个数量级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 18:27:38