最长的 Collat​​z 序列 1:n

问题描述

我正在研究 Collat​​z 猜想。我花了一段时间研究并在 R 中遇到了以下练习。我尝试了一段时间,但无法让它工作。我想出了如何制作一个 collat​​z 序列,但没有比这更进一步。

这就是问题:编写一个函数,它期望一个正自然数 n 并返回最长的 Collat​​z 序列 由任何小于或等于 n 的数生成。该函数还必须返回 this 的长度 Collat​​z 序列和序列的起始值。为此,您可以将所有要退回的 列表中的对象并返回列表

这是我走了多远:

collatz_sequence <- function(p) {
    collatz <- vector()
    collatz[1] <- p
    
    i <- 1
    
    while (p > 1) {
        if (p %% 2 == 0) 
            p <- p / 2
        else
            p <- 3 * p + 1
        
        collatz[i+1] <- p
        
        i <- i + 1
        
        length_seq <- length(collatz)
    }
    
    collist <- list(collatz,length(collatz),collatz[1])
        
    return(collist)
}

非常感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...