问题描述
我正在研究 Collatz 猜想。我花了一段时间研究并在 R 中遇到了以下练习。我尝试了一段时间,但无法让它工作。我想出了如何制作一个 collatz 序列,但没有比这更进一步。
这就是问题:编写一个函数,它期望一个正自然数 n 并返回最长的 Collatz 序列 由任何小于或等于 n 的数生成。该函数还必须返回 this 的长度 Collatz 序列和序列的起始值。为此,您可以将所有要退回的 列表中的对象并返回列表
这是我走了多远:
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 (将#修改为@)