问题标签 [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.

0 投票
4 回答
1433 浏览

scheme - How to use collatz conjecture without if statements?

I'm trying to use the collatz conjecture (basically divides an even number by 2, and if it's even if multiplies the number by 3 and adds 1) in a functional language (scheme). The obvious solution would be to use remainder to find a 0/1 for even/odd numbers and use an if statement on that for both. BUT, we can't use if statements, conditions, or recurcives. Only what we have learned in module one which is pretty much just basic operations as well as exponents, square roots, etc. Any suggestions?

0 投票
3 回答
555 浏览

c++ - For 循环未递增或 while 循环未通过测试

我有这部分代码应该找到给定范围内所有整数的 Collat​​z 序列,由用户输入定义。问题是在for循环中,current_number永远不会增加,或者在内部while循环中,current_number != 1永远不会失败。我错过了什么?

0 投票
5 回答
507 浏览

java - 为什么循环会死?(科拉兹猜想)

我正在尝试用java进行一些数学运算,如果它(不)偶数,它会测试一个数字,只要它达到1就改变它。

我尝试运行我的循环 999999 次,它似乎卡在大约 120000 次左右。好吧,它并没有因异常而停止,只是感觉编译器卡住了。

我对Java不是很好,有人可以解释一下这里发生了什么吗?

0 投票
3 回答
680 浏览

scheme - 方案中的 Collat​​z 函数

所以我试图在方案中迭代地解决 collat​​z 函数,但我的测试用例一直显示为

但是,我的测试用例不断导致“#[constant 13 #x2]”。我写错了什么,如果有的话?

0 投票
3 回答
12171 浏览

python - 我怎样才能把这些数字放在列表中?

所以我有这个 Collat​​z 猜想作业。基本上我必须编写一个程序,我给它一个数字,它会为它计算 Collat​​z 猜想。这是我的问题:将出现的数字将这样写:

当它们应该在这样的列表中时 [12, 6, 3, 10, 5, 16, 8, 4, 2, 1]。

这是我的代码:

0 投票
1 回答
1127 浏览

java - Project Euler 14(Collat​​z 猜想),在 Java 中实现缓存的问题

我正在解决 Project Euler 问题,但我被困在第 14 位,我确实设法使用蛮力解决了它,问题指出: http ://projecteuler.net/problem=14

为正整数集定义了以下迭代序列:

使用上面的规则并从 13 开始,我们生成以下序列:

可以看出,这个序列(从 13 开始,到 1 结束)包含 10 个术语。尽管尚未证明(科拉茨问题),但人们认为所有起始数字都以 1 结束。

哪个起始数字(低于 100 万)产生最长的链?

注意:一旦链启动,条款允许超过一百万。

我想做的是实现一个缓存,我想使用一个整数数组作为缓存,索引将是数字,存储在每个单元格中的计数将是链的长度,当我们命中一个数字时缓存单元已经有一个正数我们跳过进一步检查(打破循环),从循环中获取现有的计数器数据并将其添加到当前计数器值,然后从下一个数字开始,所以这里是实现:

由于 Project Euler 政策而删除了工作蛮力代码,下面是错误代码。

但它不起作用,我在哪里出错了?是因为长到 int 类型转换吗?

0 投票
2 回答
1646 浏览

c++ - 查找 1-1000000 之间的最大 Collat​​z 序列

我试图找到 1 到 1000000 之间的最大Collat​​z 序列。我在下面编写了以下代码。我想这是正确的,但它非常慢。你能给我一些提示让它更快吗?谢谢。

0 投票
2 回答
495 浏览

java - 针对在线编程法官获得运行时错误

所以这是我在 UVa 上的 3n+1 问题的代码。它在 Eclipse AFAIK 中在我的 PC 上完美运行,但是,我不断收到针对 UVa 判断的运行时错误。不幸的是,法官没有告诉我它使用了哪些输入,也没有在失败时提供“RuntimeException”之外的任何信息。出于好奇,这与ACM 的 ICPC结构相同。

我很确定递归不会溢出堆栈,因为从 1 到 1000000 的所有数字的最大循环长度仅为 525。此外,1000000 个整数的缓存应该只有 4Mb 大。

0 投票
2 回答
81 浏览

algorithm - 为什么我的号码在 Collat​​z 序列中只停留在 2?

我正在尝试制作一个程序,使用 Collat​​z 序列计算数字何时达到零。这是我对该程序的代码:

但是,z永远不会超过 2,它只会继续打印:

等等......谁能告诉我我做错了什么?

0 投票
1 回答
463 浏览

java - java程序为什么会卡在113882?

我编写了一个 java 程序,它使用 collat​​z 序列查找数字链的长度。collat​​z 序列是:如果数字是偶数,则将其除以 2,如果是奇数,则乘以 3 并加一。当数字达到 1 时,序列结束。 Collat​​z Sequence 的附加信息。我的程序找到了从 1 到 100 万的数字的链长,但它在 113382 处停止。没有显示错误消息,程序只是停止打印数字。

*edit:我已经测试过了,结果发现当程序在113383上时,链会收敛到负值。谁能解释一下?

我已经包含了完整的代码,因为它很短。