问题标签 [collatz]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在字符串格式化期间并非所有参数都转换(证明 Collatz 猜想)
当我运行下面的代码时,我得到一个错误。我在 StackOverflow 上看过这里,但最终没有解决我的问题。
elif
我在逻辑测试中遇到错误,上面value% 2 == 0
写着
not all arguments converted during string formatting
我认为问题出在变量类型上,但我尝试了input
函数并强制int
类型,value = int (input (....))
但这也没有用。
c++ - 为什么这会变负?
所以我的错误表明我无权访问此内存。这是它的代码,我正在尝试让 collaz 系列工作。n
但即使它不应该,我的也会变得消极。
java - 我的“科拉茨猜想”有什么问题?
所以,我只是想创建一个循环来运行“3n+1”公式,当我输入一个负数时,我陷入了一个无限循环,余数为 0 和 -1。
这是正确的还是我的代码遗漏了什么?
这是我的代码:
python - 为什么这个 Python 程序的运行速度比相同的 Julia 程序快 3 倍
我想尝试 Julia 编程语言,因为我听说它应该比 Python 快。我决定为Project Euler #14尝试一个动态程序,因为它处理了大量计算(找到最长的 Collatz 序列)。
我在 Julia 中为它编写了一个程序,然后决定尝试用 Python 编写一个类似的程序,看看它们各自的速度有多快。然而,在我的机器上,Python 程序运行大约需要 2 秒,而 Julia 大约需要 7 秒。这让我很惊讶,因为正如我之前所说的 Julia 声称比 Python 快,所以我想知道是否有任何内在的东西使 Julia 变慢的脚本。我试图让它们都以相同的方式计算。
这是脚本,我将不胜感激!
朱莉娅:
Python:
c++ - 最长的 Collatz 序列 - Prokect Euler #14
为正整数集定义了以下迭代序列:
n → n/2(n 为偶数) n → 3n + 1(n 为奇数)
使用上面的规则并从 13 开始,我们生成以下序列:
13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 可以看出,这个序列(从 13 开始,到 1 结束)包含 10 个项。尽管尚未证明(科拉茨问题),但人们认为所有起始数字都以 1 结束。
哪个起始数字(低于 100 万)产生最长的链?
注意:一旦链启动,条款允许超过一百万。
这是任务,这是我的解决方案:
}
我独立地测试了序列的评估和 n 的生成,并且两者都有效。但是,当我将它们放在一起时,地板循环会生成 2、5、17、53、161、485、1457、4373、13121、39365、118097、354293,并表示序列最长的数字是 2。
我的 for 循环、执行 while 循环或两者都有问题吗?
haskell - 记忆的 Collatz 序列
我在 CodeReview 中发布了同样的问题,但没有得到答案。所以我在这里碰运气。
这是我利用记忆和数组来提高性能和内存使用率的程序之一。性能似乎令人满意,但内存使用情况很荒谬,我不知道出了什么问题:
collatz
这里的意思是这个家伙。这个函数应该接收一个数字n
,然后返回一个索引从 1 到 的数组n
,其中每个单元格包含通过应用 Collatz 公式从索引到 1 的链接的长度。
但是这种方法的内存使用率很高。这是分析器结果(ghc 选项-prof -fprof-auto -rtsopts
、运行时选项+RTS -p
、n == 500000
):
请注意,这-O2
不是理想的答案。我想弄清楚这个程序有什么问题,一般来说,我应该如何发现 Haskell 代码中的时间和内存效率低下。具体来说,我不知道为什么这段带有尾递归和爆炸模式的代码会消耗这么多内存。
相同的代码-s
产生这个:
所以它需要300兆。那还是太大了。
更新2完整代码
java - 在Java中搜索Collatz序列中的最长链,循环不终止
我想应用 Collatz 序列并将其应用于从 1 到 10^6 的所有数字,并返回达到 1 所需的最大链的数字。但是,我的循环似乎没有在 Eclipse 中终止,我不知道为什么,尽管我希望每一步都显示出来,但我什至无法在控制台中显示所有打印件。
collatz 序列由以下规则计算:
如果 n 是奇数,则下一个数是 n/2
如果 n 是偶数,则下一个数字是 3n + 1
这是我到目前为止所拥有的:
c - C无限循环中的Collatz递归
答案可能是显而易见的,但对于我的生活,我看不到它。我试图找出用户提供的正整数收敛到 1 需要多少次迭代(即递归函数是 f(x)=x/2 如果 x 偶数,3x+1 如果 x 奇数)。如果使用蛮力(即通过一系列 if 语句),答案是微不足道的。然而,我的目标是采用递归方法,并陷入无限循环:
当 number=1 时会出现问题。它没有终止循环,而是继续,因此它无限期地在 1 和 2 之间振荡。
python - 在我的 python 程序中使用 D3.js
对于一个数学项目,我正在研究 collatz 猜想,在我的报告中,我想稍微改变算法并将树作为图像。
我有图表的代码here
http://bl.ocks.org/mbostock/4063550#flare.json
算法代码在这里(最后一行应该有括号)
https://en.wikipedia.org/wiki/File:Collatz-graph-20-iterations.svg
我真的被卡住了,因为我不知道如何将输出放到树上。
任何帮助,将不胜感激。
c - Collatz 序列使最后一个数字 1 重复
输出:我得到的输出为:2 ,1, 1 我不应该重复最后一个数字 1。你能纠正我做错的地方吗?请做必要的事情。