首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带R循环的n<-1:30矩阵的返回Collatz猜想

Collatz猜想是一个数学问题,也被称为3n+1问题或冰雹序列。该猜想提出了以下的迭代规则:对于任意正整数n,如果n是偶数,则将其除以2;如果n是奇数,则将其乘以3再加1。根据猜想,无论初始值是什么,最终都会得到1。

针对带R循环的n<-1:30矩阵,我们可以编写一个函数来实现Collatz猜想的迭代过程,并返回结果。以下是一个示例的R代码:

代码语言:txt
复制
collatz <- function(n) {
  sequence <- c(n)
  
  while (n != 1) {
    if (n %% 2 == 0) {
      n <- n / 2
    } else {
      n <- 3 * n + 1
    }
    sequence <- c(sequence, n)
  }
  
  return(sequence)
}

matrix <- matrix(0, nrow = 30, ncol = 30)

for (i in 1:30) {
  matrix[i, ] <- collatz(i)
}

print(matrix)

上述代码中,我们定义了一个名为collatz的函数,该函数接受一个正整数n作为输入,并返回Collatz猜想的迭代序列。然后,我们创建了一个30x30的矩阵,并使用循环将每个数的迭代序列存储在矩阵中。最后,我们打印出这个矩阵。

这个代码的运行结果将会是一个30x30的矩阵,其中每个元素都是对应数的Collatz猜想的迭代序列。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【欧拉计划第 14 题】 最长考拉兹序列 Longest Collatz sequence

考拉兹猜想指出使用以上迭代规则,所有正整数都会最终回到一,虽然这个猜想仍未得到证明。 求在一百万以下,哪个起始数可以产生最长考拉兹序列? 注意:序列中包含个数可以超过一百万。...解题报告 考拉兹猜想 考拉兹猜想Collatz conjecture),又称为奇偶归一猜想、3n+1 猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是指对于每一个正整数,如果它是奇数,则对它乘...3 再加 1,如果它是偶数,则对它除以 2,如此循环,最终都能够得到 1 f...那我们根本没必要让程序重复执行冗余步骤 换言之,当 n 是奇数时候,在其后追加一步,继续计算 (3n+1)/2。...} } cout << n << endl; return 0; } ''' Author: sorrowise Date: 2022-05-1 08:42:30 LastEditTime

1K20

面对数学史上最简单未解之谜,陶哲轩给出了几十年来最重要证明!

克拉茨猜想:最简单“不可能解决”问题 克拉茨猜想据称是上世纪30年代由德国数学家Lothar Collatz提出。但其具体出处不详,已知,从西拉古斯大学大学传到贝尔实验室,再到芝加哥大学。...因早期有众多传播者,所以在传播过程中,克拉茨猜想收获了许多名字:3n+1猜想、奇偶归一猜想、乌拉姆(Ulam)问题、角谷猜想等。 其表述形式之简单让它听起来像是聚会上一个游戏。...这之后,1成为初始数,会陷入循环1、4、2 、1、4,2,1…… 多年以来,许多人都对克拉兹猜想表述之简单(该猜想又被称为著名“ 3x +1问题”)而对这个问题深深着迷。...他意识到,Collatz猜想在某种程度上类似于一种方程式形式,即偏微分方程,他正是这个领域取得了职业生涯中一些最重要成果。...陶哲轩使用这种加权技术证明了,几乎所有的Collatz初始值(99%甚至更多)最终都达到一个非常接近1值。这使他能够得出99%初始值大于1千万亿克拉茨数列,最终结果小于200结论。

2.6K10
  • TensorFlow新功能「AutoGraph」:将Python转换为计算图

    可运行例子 这里TensorFlow官方展示了一个用循环和分支检查Collatz猜想例子,用AutoGraph .to_graph()函数将其转换为计算图: 1def collatz(a):...counter = counter + 1 9 return counter 10 11graph_mode_collatz = autograph.to_graph(collatz...(tf.constant(n)) AutoGraph可以支持任意嵌套控制流,例如: 1def f(n): 2 if n >= 0: 3 while n < 5: 4 n += 1 5...print(n) 6 return n AutoGraph允许您将元素追加到循环数组中,可以通过使用一些AutoGraph助手,比如set_element_type和stack来实现。...3 return x * x 能够轻松地添加循环,控制流程以及更多计算图,意味着可以轻松地将训练循环移动到计算图中。另外一个例子是采用RNN训练循环并通过一次sess.run()调用执行它。

    62530

    通过欧拉计划学习Rust编程(第13~16题)

    Collatz序列意思是,当一个数n是偶数时,下一数为n/2;当n为奇数时,下一个数为3*n+1。 这种序列有一个猜想,最后都会收敛于4,2,1。...= x / 2; } else { y = x * 3 + 1; } collatz_len(y) + 1 } 里面有一个关于y分支判断,可以利用类似C#中三元表达式...x * 3 + 1 }; collatz_len(y) + 1} 主程序用一个循环暴力搜索就行了: fn main() { let mut max = 0; for num in...对于m行n网格,可以利用其它网格路径个数结果,即: P(m,n) = P(m-1,n) + P(m-1,n-1) + ... + P(m-1,1) + P(m-1,0) 对于0行或者0列网格,...("{}", full_str); 在for循环里变量i并没有使用,所有前面添加一个下划线,可以不出现编译警告。

    81710

    通过欧拉计划学习Rust编程(第13~16题)

    Collatz序列意思是,当一个数n是偶数时,下一数为n/2;当n为奇数时,下一个数为3*n+1。 这种序列有一个猜想,最后都会收敛于4,2,1。...= x / 2; } else { y = x * 3 + 1; } collatz_len(y) + 1 } 里面有一个关于y分支判断,可以利用类似C#中三元表达式...{ x * 3 + 1 }; collatz_len(y) + 1 } 主程序用一个循环暴力搜索就行了: fn main() { let mut max = 0; for num...对于m行n网格,可以利用其它网格路径个数结果,即: P(m,n) = P(m-1,n) + P(m-1,n-1) + ... + P(m-1,1) + P(m-1,0) 对于0行或者0列网格,...("{}", full_str); 在for循环里变量i并没有使用,所有前面添加一个下划线,可以不出现编译警告。

    56710

    记录第一个Python练习过程

    题目如下 编写一个名为collatz()函数,它有一个名为number参数。如果参数是偶数,那么collatz()就打印出number // 2,并返回该值。...如果number是奇数,collatz()就打印并返回3 * number + 1。...然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回 练习过程 先完成子函数内容 def (number): if number%2 == 0:...题目要求不断调用collatz()函数,直到返回值为1 考虑使用 while循环,不满足条件就一直循环 由于需要判断子函数返回值是否为1,因此需要在子函数中增加return(PS:如果子函数没 return...= 1: num = collatz(num) 结果如下 图片 奇怪是,每次结果都打印了两次 从头开始梳理代码,怀疑是在语句 while collatz(num) !

    23840

    2023-10-28:用go语言,给定一个n*m二维矩阵,每个位置都是字符, U、D、L、R表示传送位置,会被传送到 :

    2023-10-28:用go语言,给定一个n*m二维矩阵,每个位置都是字符, U、D、L、R表示传送位置,会被传送到 : 上、下、左、右, ....、O分别表示空地、目标,一定只有一个目标点, 可以在空地上选择上、下、左、右四个方向一个, 到达传送点会被强制移动到其指向下一个位置。 如果越界直接结束,返回有几个点可以到达O点。...大体步骤如下: 首先,代码定义了两个函数number1和number2,它们都接受一个二维矩阵作为输入,并返回一个整数,表示可以到达目标点O数量。这两个函数主要区别在于它们搜索策略不同。...最后,返回计数器ans值。 在number2函数中,同样首先初始化一个与输入矩阵大小相同visited矩阵,用于记录每个位置是否已经被访问过。...最后,返回计数器ans值。 generateRandomMap函数用于生成一个随机nm二维矩阵,其中包含字符U、D、L、R、.和O。

    22850

    2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1返回执行此操作后,grid 中最大岛屿面积是多少

    2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1返回执行此操作后,grid 中最大岛屿面积是多少?...答案2023-05-07:算法步骤:1.遍历输入矩阵 grid,对于每个岛屿进行标记,并用数组 sizes 统计每个岛屿大小。...2.遍历矩阵 grid,对于每个位置上值,如果当前位置上值为非零正整数,则更新答案为当前岛屿大小。...3.遍历矩阵 grid,当当前位置上值为 0 时,分别查看该位置上、下、左、右四个方向是否有与其相邻且已经被访问过岛屿,并将它们大小累加起来。...如果这些岛屿大小之和加上当前位置上自身大小可以更新最大岛屿面积,则更新答案。4.返回答案。时间复杂度:$O(n^2)$ ,遍历了三次矩阵,每次遍历时间复杂度均为 $O(n^2)$。

    35810

    浙大版《C语言程序设计(第3版)》题目集 61~70

    @目录 61、练习7-7 矩阵运算 62、练习7-8 方阵循环右移 63、习题6-1 分类统计字符个数 64、习题6-2 使用函数求特殊a串数列和 65、习题6-4 使用函数输出指定范围内Fibonacci...7-7 矩阵运算 给定一个n×n方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外所有元素之和。...副对角线为从矩阵右上角至左下角连线。 输入格式: 输入第一行给出正整数n1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。...、练习7-8 方阵循环右移 本题要求编写程序,将给定n×n方阵中每个元素循环向右移m个位置,即将第0、1、⋯、n1列变换为第n−m、n−m+1、⋯、n1、0、1、⋯、n−m−1列。...函数接口定义: int fn( int a, int n ); int SumA( int a, int n ); 其中函数fn须返回n个a组成数字;SumA返回要求和。

    1.7K30

    把 WebAssembly 用于提升速度和代码重用

    C中示例函数是: int f(int n) { /** C **/ return n + 1; } 参数 n返回值都以 int 显式输入。...冰雹(hailstone)序列和 Collatz 猜想 生产级代码案例将使 WebAssembly 代码执行繁重计算绑定任务,例如生成大型加密密钥对,或进行加密和解密。...该函数定义如下: 3N + 1 if N is odd hstone(N) = N/2 if N is even 例如,hstone(12) 返回...我在 C 和 TypeScript 中代码例子计算了冰雹序列长度。 Collatz 猜想是一个冰雹序列会收敛到 1,无论初始值 N> 0 恰好是什么。...没有人找到 Collatz 猜想反例,也没有人找到证据将猜想提升到一个定理。这个猜想很简单,就像用程序测试一样,是数学中一个极具挑战性问题。

    96140

    C++实验报告

    If语句进行判断,若是和与自身相同,则返回值为1;反之,返回值为0.主函数中,输出返回值为1完全数。 ...、UML图等方式表达) 先构造出一个判断素数函数,在大循环中让该数依次去除以比它小数,直至循环可以循环到该数前一个,输出。...用成员函数实现对人员信息 录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、缺省形参值成员函数 、聚集。 ...5.3 实验任务  5.3 任务一  (1)题目名称 用类来实现矩阵,定义一个矩阵类,属性包括: 矩阵大小,用 lines, rows(行、列来表示); 存贮矩阵数组指针,根据矩阵大小动态申请(new...主函数功能: 定义三个矩阵:A1、A2、A3; 初始化 A1、A2; 计算并输出 A3 = A1+A2,A3=A1+A2; 用 new 动态创建三个矩阵对象:pA1、pA1、pA3; 初始化 pA1

    1.2K30
    领券