問題タブ [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 投票する
1 に答える
1764 参照

java - Collat​​z予想プログラムがJavaの大きな整数に対して機能しないのはなぜですか

これは、Javaでコラッツの予想をシミュレートするために作成したプログラムです。

n = 6とすると、

3 10 5 16 8 4 2 1 8回の反復が必要でした!

しかし、たとえばn = 63728127とすると、次のようになります。

191184382 95592191 286776574 143388287 430164862 215082431 645247294 322623647 967870942 483935471 1451806414 725903207 -2117257674 -1058628837 14回の反復が必要でした!

何が悪かったのか?なんで?どうすれば修正できますか?ありがとう!

0 投票する
1 に答える
101 参照

c++ - Collat​​z p‌r‌o‌b‌l‌e‌m を解こうとすると奇妙な結果が得られる

Project Euler Problem 14を解こうとしています。最長シーケンスを生成する 100 万未満の数を見つけるように求められます。私がしたことは、ベクトル v を作成し、その要素に特定の数のシーケンスの長さを入力することでした。したがって、位置 13 に存在する要素は、番号 13 によって生成されるシーケンスの長さに対応します。ただし、一見ランダムな要素のいくつかは非常に大きな数を取り、コードの何が問題なのかわかりません。また、1,000,000 でテストすると、完全に間違った答えが得られますが、手動でテストして検証した後、プログラムがいくつかの小さな数値で機能していることがわかります。

0 投票する
4 に答える
2166 参照

c# - 3n+1予想によるアルゴリズムガイダンス

わかりました、これは宿題のように聞こえるでしょう。しかし、ここではどうにでもなります。C# を使用してこの問題を解決しようとしています。問題の説明からの抜粋を以下に示します。

入力 n が与えられると、印刷される数字の数 (1 を含む) を決定することができます。与えられた n に対して、これは n のサイクル長と呼ばれます。上記の例では、22 のサイクル長は 16 です。任意の 2 つの数値 i と j について、i と j の間のすべての数値の最大サイクル長を決定する必要があります。

質問

サイクルの長さを除いて、すべてを理解しています。私はそれを正確に理解していません。テキストの定義があいまいであることがわかりました。サイクルの長さは、シーケンス内の数字の数であるため、入力が 10 であると仮定すると、サイクルの長さは 8 になります。しかし、正確にはわかりません。あなたの側でコードは必要ありませんが、私が求めるのはガイダンスだけです。

さらに、標準入力と標準出力から読み取る方法は既に知っています。問題はプログラミング競技形式なので。

入力として n を与える一連の数字を表示する私の実装

ノート

宿題じゃないけど宿題扱いしたいのでタグの一つに入れておきます。

0 投票する
4 に答える
12061 参照

algorithm - 最長のコラッツ シーケンス

Collat​​z Conjectureを実装するという Java の宿題をしているときに、最長の Collat​​z シーケンスを見つけるという別の目的を考えました。私のプログラムは次のようにステップを数えます:

最高の歩数を見つけたい。

0 投票する
2 に答える
523 参照

prolog - Prologを使用したcollat​​z-listの実装

collatz_listPrologで呼び出される関数を作成しようとしています。この関数は2つの引数を取ります。最初の引数は数値で、2番目の引数はリスト内です。このリストは、この関数の出力になります。だから、これが私の関数です:

出力リストの作成に苦労しています。誰かがそれについて私を助けることができますか?

ありがとう。

0 投票する
2 に答える
1005 参照

haskell - Haskellで最長のコラッツチェーンを最適化

私はHaskellを学ぶためにプロジェクトオイラーの問題をやっています。

途中でいくつかの問題が発生しましたが、問題14に到達しました。問題は、1 000 000未満の開始番号が最長のCollat​​zチェーンを生成することです(チェーンの開始後、番号は100万を超えることができます)。

私はいくつかの解決策を試しましたが、どれもうまくいきませんでした。逆にしたかった。1から始まり、数が100万を超えたときに終了しますが、条件が100万を超える可能性があるため、明らかに機能しません。

通常のアルゴリズムをメモ化してみましたが、数が多すぎてメモ化できませんでした。

私はこれに対して最も明白な解決策が機能するはずだと読みましたが、何らかの理由で、私の解決策は最大20000を取得するのに10秒以上かかります。100万は言うまでもありません。

これは私が現在使用しているコードです:

どんな助けでも大歓迎です。

0 投票する
3 に答える
1656 参照

java - Java: Collat​​z シーケンスで最大のチェーンを見つける

Project Eulerの問題#14の何が問題なのかわかりません。私の最初のステップは、数値が約 120000 になるまで機能するアルゴリズムを見つけることでした。コードが壊れ、BigIntegers を使用する必要があることに気付きました。その変更に合わせてアルゴリズムを変換しましたが、現在は機能しません。

System.out.print(chain_length) を追加して、コードが壊れる可能性がある場所を支援しました。

0 投票する
1 に答える
659 参照

java - Javaでの拡張コラッツ計算

それぞれのJavaをどのように使用するかについて本当に混乱しています-正しいループ。誰か助けてもらえますか?

さて、これが取引です。コラッツの問題が拡張され、頭から離れることができません。重要なのは、2つの変数xとyの間の範囲のすべてのCollat​​z反復をリストしたいということです。ここで、x> yは0〜10000の範囲です。私の問題は、2番目のフロアループで、値の各数値に対してコラッツ計算全体を実行したいので、値= 7の場合、x = 7(16)などのyまでのコラッツ反復を計算したいということです。 = 19(20)、シーケンス全体は16、3、19、6、14、9、9、17、17、4、12、20、20です。これはJavaで行っています。

java.utilをインポートします。; java.langをインポートします。;

パブリッククラスhackCollat​​z{

}

0 投票する
1 に答える
2507 参照

loops - スキーム while ループ

私はスキーム構文がちょっと新しいです...整数が偶数の場合は何かを行い、奇数の場合は別のことを行う、整数を入力する単純なプログラムを作成しようとしています。この部分はできました。ここで、1 になるまで数値を減らすことができるループを作成する必要があります。これが私のコードです。

出力は一連の数字である必要があります。つまり、リスト内にある必要があります。

0 投票する
2 に答える
1553 参照

loops - スキームの for ループ

スキームで for ループを構築する方法がちょっと混乱しています。for ループはパート II で実装する必要があります。ここでは、数字のリストを取り、パート I のリスト内に各要素を挿入して長さを見つけます。私は最初の要素を取得するためにケーブルを使用しましたが、次のような出力を取得するには for ループまたは何かが必要です: '(7 10 5 16 106 37) ここに私のコードがあります:

出力は次のとおりです。