問題タブ [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.
java - 私の「コラッツ予想」の何が問題になっていますか?
そのため、「3n + 1」式を実行するループを作成しようとしていましたが、負の数を入力すると、残りが 0 と -1 の無限ループに陥ります。
それは正しいですか、それとも私のコードに何かが欠けていますか?
これが私のコードです:
python - この Python プログラムは、同じ Julia プログラムよりも 3 倍速く実行されるのはなぜですか?
Julia プログラミング言語は Python よりも高速であると聞いていたので、試してみたかったのです。Project Euler #14の動的プログラムを試すことにしました。これは、多くの計算 (最長のコラッツ列の検出) を処理するためです。
Julia でプログラムを書いた後、Python で類似のプログラムを作成してみることにしました。ただし、私のマシンでは、Python プログラムは約 2 秒で実行されますが、Julia のプログラムは約 7 秒かかります。これには驚きました。前に述べたように、Julia は Python よりも高速であると主張しているからです。 Julia を非常に遅くするスクリプト。両方を同じ方法で計算しようとしました。
これがスクリプトです。洞察をいただければ幸いです。
ジュリア:
パイソン:
haskell - メモ化されたコラッツ数列
CodeReview に同じ質問を投稿しましたが、回答が得られませんでした。だから私はここSOで運を試しています。
これは、メモ化と配列を利用してパフォーマンスとメモリ使用量を改善した私のプログラムの 1 つです。パフォーマンスは満足のいくものに見えますが、メモリ使用量がばかげており、何が問題なのかわかりません。
collatzここではこの男を意味します。この関数は、数値 を受け取り、n1 から までインデックス付けされた配列を返しnます。各セルには、Collatz 式を適用してインデックスから 1 までのリンクの長さが含まれます。
ただし、このメソッドのメモリ使用量は非常に高くなります。プロファイラーの結果は次のとおりです (ghc オプション-prof -fprof-auto -rtsopts、実行時オプション+RTS -p、n == 500000):
-O2希望回答ではありませんのでご了承ください。このプログラムの問題点を突き止めたいのですが、一般的に、Haskell コードの時間とメモリの非効率性をどのように見つければよいでしょうか。具体的には、テール再帰と bang パターンを使用したこのコードがなぜ大量のメモリを消費するのか、私にはわかりません。
と同じコードはこれを-s生成します:
したがって、300メガかかります。それはまだ大きすぎます。
Update2完全なコード
c - C無限ループでのCollatz再帰
答えはおそらく盲目的に明らかですが、私の人生ではそれを見ることができません。ユーザーが指定した正の整数が 1 に収束するまでに何回の反復が必要かを調べようとしています (つまり、再帰関数は、x が偶数の場合は f(x)=x/2、x が奇数の場合は 3x+1 です)。力ずくで (つまり、一連の if ステートメントを使用して) 実行した場合、答えは簡単です。ただし、再帰的なアプローチを目指しており、無限ループに陥っています。
number=1 の場合に問題が発生します。ループが終了する代わりに、ループは継続するため、1 と 2 の間で無期限に振動します。
python - Python プログラムで D3.js を使用する
数学プロジェクトでは、コラッツ予想を調べています。レポートでは、アルゴリズムを少し変更して、ツリーを画像として表示したいと考えています。
ここにグラフのコードがあります
http://bl.ocks.org/mbostock/4063550#flare.json
アルゴリズムのコードはここにあります(最後の行には括弧が必要です)
https://en.wikipedia.org/wiki/File:Collatz-graph-20-iterations.svg
出力をツリーに配置する方法がわからないため、本当に行き詰まっています。
どんな助けでも大歓迎です。
c - 最後の番号 1 が繰り返される Collatz シーケンス
出力: 出力を次のように取得しています: 2 ,1, 1 最後の数字 1 を繰り返さないでください。間違いを犯した場所を修正してください。必要なことをしてください。