轨道
/
F#
F#
/
练习
/
考拉兹猜想
考拉兹猜想

考拉兹猜想

简单

简介

某天晚上,你偶然发现了一本旧笔记本,里面写满了神秘的涂鸦,仿佛有人曾执念般地追逐着某个想法。 其中一页上,一个问题格外醒目:每个数字都能找到通往 1 的路吗? 这个问题与一个叫做Collatz Conjecture的东西有关,几十年来,这道谜题一直困扰着无数思考者。

规则看似简单,实则不然。 任选一个正整数。

  • 如果它是偶数,就除以 2。
  • 如果它是奇数,就乘以 3 再加 1。

然后对结果重复这些步骤,一直进行下去。

出于好奇,你选了数字 12 来试试,开始了这趟旅程:

12 ➜ 6 ➜ 3 ➜ 10 ➜ 5 ➜ 16 ➜ 8 ➜ 4 ➜ 2 ➜ 1

从第二个数字(6)开始数,用了 9 步才到达 1,而且每重复一次规则,数字都在不断变化。 起初,这个序列似乎毫无规律,忽上忽下,四处乱跳。 然而,这个猜想断言,无论从哪个数字开始,最终都会到达 1。

这既令人着迷,又令人困惑。 为什么它似乎总是成立? 会不会存在某个数字,让这个过程崩溃,永远循环下去,或者一路飞向无穷? 笔记本上暗示,解开这个谜题或许能揭示某种深刻的东西,而名声、财富 和青史留名的机会,正等待着能揭开它秘密的人。

说明

给定一个正整数,按照考拉兹猜想的规则,返回达到 1 所需的步数。


来源

Wikipedia链接会在新窗口或新标签页中打开
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
F# Exercism

准备好开始 考拉兹猜想 了吗?

注册 Exercism,借助 18 个概念148 个练习 和真人导师指导,学习并掌握 F#,全部免费。