如何在R语言中生成指定序列?附尝试代码及问题求助
R语言生成目标序列的修正方案

你当前尝试的代码存在核心问题:每次循环都会将x和h重置为初始值0.1和36,导致每次计算的y完全相同,无法生成递变的序列。
修正后的代码
# 初始化迭代变量,放在循环外保证持续更新 x <- 0.1 h <- 36 # 预先分配结果向量,提升效率 result <- numeric(12) for(i in 1:12){ # 计算当前项,可先化简表达式提升计算效率 result[i] <- 2^(h-2) * x^(2*h - 2) # 更新变量用于下一轮迭代 x <- x * 2 h <- h - 3 } # 输出目标序列 print(result)
关键说明
- 变量初始化移至循环外:确保
x和h能在每次循环后保留更新后的值,实现递变逻辑 - 表达式化简:原计算式
(x^h)*((x*2)^(h-2))可化简为2^(h-2) * x^(2h-2),减少重复计算,结果完全等价 - 预先分配结果向量:用
numeric(12)替代c()拼接,避免循环中频繁扩容,提升运行效率
内容的提问来源于stack exchange,提问作者Vasilis
相关产品推荐
相关产品推荐

