タグ付けされた質問 「fastest-algorithm」

最も速いアルゴリズムの競争は、最小の漸近的な時間の複雑さの答えによって勝ちます。実際のランタイムに基づくチャレンジの場合は、代わりに[fastest-code]を使用してください。

1
神聖幾何学を計算する[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 10か月前に閉鎖。 Pathfinderという名前の卓上RPGには、Sacred Geometryと呼ばれるキャラクターが取ることができる偉業があります。これにより、数学を実行する代わりに呪文を磨くことができます。これを使用すると、キャラクターは6面の特定のスキルのランクに等しいサイコロは、スペルレベルに基づいてテーブルを参照して、その3つの素数がそのスペルレベルの「素数」であるかどうかを判断し、次の方法で素数の1つを生成できるかどうかを計算します。ロールされたすべての数値に対して、加算、減算、乗算、および除算と括弧によるグループ化のいくつかの組み合わせを実行します。 スペルレベルごとの主定数の表は次のとおりです。 +-------------+-----------------+ | Spell Level | Prime Constants | +-------------+-----------------+ | 1st | 3, 5, 7 | | 2nd | 11, 13, 17 | | 3rd | 19, 23, 29 | | 4th | 31, 37, 41 | | 5th | 43, 47, 53 | …

3
n桁の精度の近似浮動小数点数
r0と1の間の浮動小数点数と整数がありpます。 r少なくともp-桁の精度で近似する最小の分母を持つ整数の割合を見つけます。 入力:(r浮動小数点数)およびp(整数)。 出力:aとb整数、どこ a/b(floatとして)桁rまで近似しpます。 b そのような正の整数の可能な最小のです。 例えば: 場合r=0.14159265358979とp=9、 そして結果はa=4687and b=33102、 なぜなら4687/33102=0.1415926530119026。 理論的には、任意のソリューションは任意精度型で機能する必要がありますが、実装の固定精度型によって引き起こされる制限は問題になりません。 精度とは、「0.」の後の桁数を意味しrます。したがって、との場合r=0.0123、p=3でa/b始まる必要があり0.012ます。pの小数部の最初の桁rが0の場合、未定義の動作は許容されます。 勝利基準: アルゴリズム的に最も速いアルゴリズムが優先されます。速度はO(p)で測定されます。 最速のアルゴリズムが複数ある場合は、最短のアルゴリズムが優先されます。 私の回答は、勝者候補から除外されています。 Ps数学の部分は実際にはかなり簡単に見えるので、この投稿を読むことをお勧めします。

7
Digital River(最短かつ最速のソリューション)
これが最初の質問なので、うまくいきますように。 バックグラウンド: あなたが考えているのは川ではありません。問題は、デジタルリバーの概念に関係しています。デジタルリバーは、次の番号が数字のシーケンスでnあるnその数字のプラス合計。 説明: 1 + 2 + 3 + 4 + 5 = 15であるため、12345の後に12360が続き、12345 + 15は12360になります。同様に、145の後に155が続きます。デジタルリバーの最初の数がの場合、Mこれをriverと呼びますM。 たとえば、川480は{480,492,507,519 ....}で始まるシーケンスであり、川483は{483,498,519、....}で始まるシーケンスです。通常の河川と河川は合流することができ、デジタル河川にも同じことが言えます。これは、2つのデジタル河川が同じ値のいくつかを共有している場合に発生します。 例: 480川は519で483川と合流します。480川は507で507川と合流し、481川とは合流しません。すべてのデジタル川は最終的に1川、3川、または9川に合流します。 与えられた整数nに対して、川nがこれら3つの川の1つに最初に出会う場所の値を決定できるプログラムを記述します。 入力 入力には複数のテストケースが含まれる場合があります。各テストケースは個別の行を占め、整数n(1 <= n <= 16384)を含みます。0forの値を持つテストケースnは入力を終了し、このテストケースは処理されません。 出力 入力の各テストケースについて、出力例に示すように、最初にテストケース番号(1から開始)を出力します。次に、別の行に「最初にyで川xに出会う」という行を出力します。ここで、yは川がn最初に川に出会う最低値ですx(x = 1または3または9)。の複数の値で川nが川と合流xする場合、最低値を出力します。2つの連続するテストケースの間に空白行を出力します。yx テストケース 入力: 86 12345 0 出力: Case #1 first meets river 1 at 101 Case #2 first meets …

7
最も重い増加するサブシーケンス
サブシーケンスは、残りの要素の順序を変更せずに一部の要素を削除することにより、別のシーケンスから派生できるシーケンスです。厳密に増加するサブシーケンスは、すべての要素が前の要素よりも大きいサブシーケンスです。 シーケンスの最も大きく増加するサブシーケンスは、要素の合計が最大である厳密に増加するサブシーケンスです。 非負整数の特定のリストの最も大きく増加するサブシーケンスの要素合計を見つけるプログラムまたは関数を、選択した言語で実装します。 例: [] -> 0 ([]) [3] -> 3 ([3]) [3, 2, 1] -> 3 ([3]) [3, 2, 5, 6] -> 14 ([3, 5, 6]) [9, 3, 2, 1, 4] -> 9 ([9]) [3, 4, 1, 4, 1] -> 7 ([3, 4]) [9, 1, 2, 3, 4] -> …

1
変数を代入することによる一意の出力の数
次のような一連の数式があるとします。 bacb bcab cbba abbc すべての数式で各変数が「0」または「1」に置き換えられたときに取得できる一意の結果の数を見つけるアルゴリズムを提供します。 変数と項(k!)^2を含む式があります。の面であなたの漸近を表現します。2k-1k^2k 最速のアルゴリズムが優先されます。引き分けの場合、漸近的なメモリ使用量の少ないソリューションが優先されます。それでも同点の場合は、最初の投稿が優先されます。 上記の例では、変数を代入することで次の結果を取得できます。 1110, 0110, 1001, 0100, 1000, 0000, 0010, 1101, 1111, 0001, 1011, 0111 正解は12です。とりわけ1010、上記の数式では計算できません。 私はそれぞれのソリューションを、3つのテストケースを作った230、12076および1446672。

2
最速のアルゴリズム最適化の課題
これは、漸近的な複雑さの課題に対する私の最初の実験ですが、時間の複雑さの説明が付いている限り、コードで完全に答えることに満足しています。 次の問題があります。 タスクT_1、... T_nおよびprocs M_1、...、M_mについて考えてみます。各タスクは、プロシージャに応じて、実行に一定の時間がかかります。 各タスクは、procに応じて、実行に一定のコストがかかります。 タスクは厳密な順序で実行する必要があり(並行して実行することはできません)、プロシージャの変更には時間がかかります。開始後、タスクをあるプロシージャから別のプロシージャに移動することはできません。 最後に、各タスクは特定の時間までに完了する必要があります。 タスク 目的は、上記のフォームの5つのテーブルを与え、すべてのタスクを完了するための総コストを最小限に抑えながら、すべてのタスクが期限までに完了することを保証するアルゴリズム(またはコード)を提供することです。これが不可能な場合は、実行できないことを報告します。 スコア 変数n、m、dに関して、ソリューションの大きなOh複雑さを与える必要があります。dは最後の期限です。大きなOhの複雑さには不必要な定数があってはなりません。たとえば、O(n / 1000)はO(n)のように記述します。 スコアは、n = 100、m = 100、d = 1000を設定した複雑度に設定するだけで計算されます。あなたは可能な限り最小のスコアを求めています。 タイ・ブレーカー 引き分けの場合、最初の答えが優先されます。 追加されたメモ log 時間内に、回答の複雑さは2を基にして計算されます。 スコアボード KSFT(Python)からの10 ^ 202 最初に提出されたので、賞金を獲得します。 DominikMüller(Scala)の10 ^ 202

7
入力の循環ワードの数を数える
循環する言葉 問題文 循環単語は、円で書かれた単語と考えることができます。循環単語を表すには、任意の開始位置を選択し、時計回りに文字を読み取ります。したがって、「picture」と「turepic」は同じ循環する単語の表現です。 String []ワードが与えられ、その各要素は巡回ワードの表現です。表現されている異なる巡回単語の数を返します。 最速の勝利(Big O、n =文字列内の文字数)

6
コードチャレンジ:最も近いプライム
チャレンジ このタスクでは、整数Nが与えられます。整数に最も近い素数を出力する必要があります。 数値が素数の場合は、数値を出力します。 入力Nは1行で指定され、入力はEOFで終了します。入力の数は10000の値を超えません。 課題は、最速のソリューションを実装して、最大10000の値を可能な限り速く処理できるようにすることです。 入力 299246598 211571591 71266182 645367642 924278231 出力 299246587 211571573 71266183 645367673 924278233 制約 Nが2 ^ 64未満 ソリューションでは、指が4096バイトを超えないように注意してください。 素数のための組み込みのものを使用していない限り、任意の言語を使用できます。 最速のソリューション、最も効率的な時間の複雑さの勝利 追加: これは、同じ問題の簡単なバージョン(N <2 ^ 31)なので、実際の問題を解決する前に、小さなケースでアプローチを確認してみてください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.