プロジェクトオイラー#29:なぜ私の答えは37までにずれているのですか?

ジェローム

私は問題29に取り組んでいます

2≤a≤100および2≤b≤100の場合にabによって生成されたシーケンスには、いくつの異なる項がありますか?

私はフィルターを使ってブルートフォースソリューションを実行しました:

var main = function() {

    var arr = [];

    for (var a = 2; a <= 100; a++) {
        for (var b = 2; b <= 100; b++) {
            arr.push(BigInt(Math.pow(a, b)));
        }
    }
    //arr.sort((a, b) => a - b);

    return arr.filter(function(elem, pos) {
        return arr.indexOf(elem) == pos;
    }).length;
}

console.log(main());

私のプログラムは正常に実行されます。私が得ている結果9220は正しい答えがどこにあるかですが9183ここで何が欠けていますか?

特定のパフォーマンス

問題はそれです

BigInt(Math.pow(a, b))

さえのBigIntと、表現の内側には、それがのBigIntに渡される前に評価されます、そしてJavascriptが正確に膨大な数を扱うことができません。動作はブラウザに依存しているように見えますが、残念ながら、問題はすべての環境で十分に再現できるわけではありません。

クロスブラウザーソリューションの場合、各数値の個別の因子を見つけたり、因子カウントが重複している数値を除外したりするなど、別の方法を見つける必要があります。(たとえば、2 ^ 4の素因数は2x2x2x2であり、4 ^ 2と同じです-そのような重複をすべて除外します。)

例えば:

const isPrime = num => {
  for(let i = 2; i < num; i++)
    if(num % i === 0) return false;
  return num > 1;
}
const primes = Array.from(
  { length: 100 },
  (_, i) => i + 1
).filter(isPrime);

const addPrimesToObj = (num, prime, obj) => {
  while ((num / prime) % 1 === 0) {
    obj[prime] = (obj[prime] || 0) + 1;
    num = num / prime;
  }
  return num;
};
var main = function() {
  const factorsSet = new Set();
  for (let a = 2; a <= 100; a++) {
    for (let b = 2; b <= 100; b++) {
      const theseFactors = {};
      for (let i = 0; i < b; i++) {
        let innerA = a;
        primes.forEach((prime) => {
          innerA = addPrimesToObj(innerA, prime, theseFactors);
        });
      }
      const factorsStr = Object.entries(theseFactors)
        .map(([key, val]) => `${key}-${val}`)
        .join('_');
      factorsSet.add(factorsStr);
    }
  }
  return factorsSet.size;
}

console.log(main());

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プロジェクトオイラー#32:なぜ私の答えは間違っているのですか?

分類Dev

私のBashスクリプトがこのプロジェクトオイラーに正しい答えを返さないのはなぜですか?

分類Dev

プロジェクトオイラー#43:なぜ私の答えはそんなに時間がかかるのですか?

分類Dev

プロジェクトオイラー#43:なぜ私の答えはそんなに時間がかかるのですか?

分類Dev

プロジェクトオイラー#1。私は正確に100で答えを間違え続けています、そして私は理由がわかりません(F#で書かれています)

分類Dev

プロジェクトオイラー#22-なぜ私の合計が324536オフになっているのですか?

分類Dev

プロジェクトオイラー#23(Java)。何が悪いのかわかりません。答えは64分ずれています

分類Dev

私のアンドロイドスタジオプロジェクトは私にAPKを構築するためのオプションを与えていません。どのように私はそれを修正することができますか?

分類Dev

プロジェクトオイラー#19、答えは1900年から始まる場合にのみ正しいですか?

分類Dev

キーワードthisは私に現在のオブジェクトを与えておらず、その親だけを与えています。現在のオブジェクトを取得するにはどうすればよいですか?

分類Dev

プロトタイプとは何ですか?なぜそれらが私のjsonオブジェクトに追加されるのですか?

分類Dev

プレーンなAngularプロジェクトにこれほど多くのファイルが含まれているのはなぜですか?

分類Dev

Pythonでオイラー#4をプロジェクトします。私のコードの何が問題になっていますか?

分類Dev

他のすべてがOKであるにもかかわらず、なぜ私は私のlaravelプロジェクトにそのようなフィールド名を持っているのですか?

分類Dev

計算されたオブジェクト内のオブジェクトプロパティを取得すると、オブジェクト自体ではなく未定義になるのはなぜですか?このコンテキストでは、どちらのアプローチが適していますか?

分類Dev

プロジェクトIDがデータストアキーオブジェクトに添付されているのはなぜですか?

分類Dev

Vaadin 14で私のプロジェクトのクラスパスに表示されないのはなぜグアバライブラリが含まれていますか?

分類Dev

ピリオドで始まるオブジェクトがrstudioのグローバル環境ペインに表示されないのはなぜですか?

分類Dev

プロジェクトオイラーの問題3にひびを入れて、私の解決策は正しいですか?

分類Dev

私のプロジェクションインターフェースがSpringData RESTによって取得されないのはなぜですか?

分類Dev

クラスタイプのオブジェクトを初期化しないようにし、ポインターを使用せずにこれが当てはまる場合を識別するにはどうすればよいですか?

分類Dev

このCSSがデモで機能しているのに、私のプロジェクトでは機能していないのはなぜですか?

分類Dev

私のプロパティがレルムオブジェクトにないのはなぜですか?

分類Dev

プロジェクトオイラー問題10、間違った答えですが、なぜですか(Java)

分類Dev

パンダエラー-なぜ私のオブジェクトは混合タイプなのですか?

分類Dev

「:ターゲットオブジェクトがnullであってはなりませんjava.lang.IllegalArgumentExceptionが」ローカルホストでの入力を与えている間、なぜ私は例外を取得していますか?

分類Dev

我々はインナークラスのオブジェクトを作成するときに、なぜはgetClass()が呼ばれているのですか?

分類Dev

テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

分類Dev

typescriptがオブジェクトタイプの2つの配列に対してエラーをスローするのに、両方の形状ではエラーをスローしないのはなぜですか?

Related 関連記事

  1. 1

    プロジェクトオイラー#32:なぜ私の答えは間違っているのですか?

  2. 2

    私のBashスクリプトがこのプロジェクトオイラーに正しい答えを返さないのはなぜですか?

  3. 3

    プロジェクトオイラー#43:なぜ私の答えはそんなに時間がかかるのですか?

  4. 4

    プロジェクトオイラー#43:なぜ私の答えはそんなに時間がかかるのですか?

  5. 5

    プロジェクトオイラー#1。私は正確に100で答えを間違え続けています、そして私は理由がわかりません(F#で書かれています)

  6. 6

    プロジェクトオイラー#22-なぜ私の合計が324536オフになっているのですか?

  7. 7

    プロジェクトオイラー#23(Java)。何が悪いのかわかりません。答えは64分ずれています

  8. 8

    私のアンドロイドスタジオプロジェクトは私にAPKを構築するためのオプションを与えていません。どのように私はそれを修正することができますか?

  9. 9

    プロジェクトオイラー#19、答えは1900年から始まる場合にのみ正しいですか?

  10. 10

    キーワードthisは私に現在のオブジェクトを与えておらず、その親だけを与えています。現在のオブジェクトを取得するにはどうすればよいですか?

  11. 11

    プロトタイプとは何ですか?なぜそれらが私のjsonオブジェクトに追加されるのですか?

  12. 12

    プレーンなAngularプロジェクトにこれほど多くのファイルが含まれているのはなぜですか?

  13. 13

    Pythonでオイラー#4をプロジェクトします。私のコードの何が問題になっていますか?

  14. 14

    他のすべてがOKであるにもかかわらず、なぜ私は私のlaravelプロジェクトにそのようなフィールド名を持っているのですか?

  15. 15

    計算されたオブジェクト内のオブジェクトプロパティを取得すると、オブジェクト自体ではなく未定義になるのはなぜですか?このコンテキストでは、どちらのアプローチが適していますか?

  16. 16

    プロジェクトIDがデータストアキーオブジェクトに添付されているのはなぜですか?

  17. 17

    Vaadin 14で私のプロジェクトのクラスパスに表示されないのはなぜグアバライブラリが含まれていますか?

  18. 18

    ピリオドで始まるオブジェクトがrstudioのグローバル環境ペインに表示されないのはなぜですか?

  19. 19

    プロジェクトオイラーの問題3にひびを入れて、私の解決策は正しいですか?

  20. 20

    私のプロジェクションインターフェースがSpringData RESTによって取得されないのはなぜですか?

  21. 21

    クラスタイプのオブジェクトを初期化しないようにし、ポインターを使用せずにこれが当てはまる場合を識別するにはどうすればよいですか?

  22. 22

    このCSSがデモで機能しているのに、私のプロジェクトでは機能していないのはなぜですか?

  23. 23

    私のプロパティがレルムオブジェクトにないのはなぜですか?

  24. 24

    プロジェクトオイラー問題10、間違った答えですが、なぜですか(Java)

  25. 25

    パンダエラー-なぜ私のオブジェクトは混合タイプなのですか?

  26. 26

    「:ターゲットオブジェクトがnullであってはなりませんjava.lang.IllegalArgumentExceptionが」ローカルホストでの入力を与えている間、なぜ私は例外を取得していますか?

  27. 27

    我々はインナークラスのオブジェクトを作成するときに、なぜはgetClass()が呼ばれているのですか?

  28. 28

    テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

  29. 29

    typescriptがオブジェクトタイプの2つの配列に対してエラーをスローするのに、両方の形状ではエラーをスローしないのはなぜですか?

ホットタグ

アーカイブ