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

最速のコードチャレンジの勝者は、提出物の実行時のパフォーマンスによって決まります。公平を期すために、すべての提出物は同じマシンでベンチマークする必要があります。これは通常、すべての提出物をチャレンジのホストがテストする必要があることを意味します。漸近的な時間の複雑さによるスコアリングには、代わりに[fastest-algorithm]を使用します。

3
最短時間でこの数字パズルのすべての解決策を見つける
歴史 私の会社は、毎週のニュースレターを社内の全員に送信しています。これらのニュースレターには、先週のなぞなぞの解決策を最初にメールしたり提供したりした会社の誰に対しても叫び声とともに、なぞなぞが含まれています。これらのなぞなぞのほとんどは非常に些細なものであり、正直なところハイテク企業にとってはかなり退屈なものですが、数か月前に私が注意を引いたものがありました。 オリジナルのなぞなぞ: 以下の形状を考えます: 1〜16の自然数があります。すべての連続する行と連続する列の合計が29になるように、すべてをこの形状に合わせます。 たとえば、このパズルに対するそのようなソリューション(ニュースレターに提出した「標準的な」ソリューション)は次のとおりです。 しかし、それを解決する過程で、かなり興味深い情報を見つけました。 それよりもはるかに多くのソリューションがあります。実際、9,368のソリューションがあります。 ルールセットを拡張して、行と列が29である必要はなく、互いに等しいことだけを要求する場合、33,608のソリューションが得られます。 合計27の4,440のソリューション。 合計28の7,400のソリューション。 29の合計のための9,368のソリューション。 合計30の6,096のソリューション。 合計31の5,104ソリューション。 合計32の1,200ソリューション。 だから私と私の同僚(主に私のマネージャーは、「一般目的」のプログラミングスキルを持っている私以外の唯一の人物だったので)は、1か月のほとんど続いた挑戦に着手しました。関連する義務-可能な限り迅速にすべてのソリューションを見つけるプログラムを作成しようとするために。 元の統計 問題を解決するために私が書いた最初のプログラムは、単にランダムな解決策を何度もチェックし、解決策が見つかった時点で停止しました。この問題について数学的分析を行ったことがあれば、おそらくこれが機能してはならないことをすでに知っているでしょう。しかし、どういうわけか私は幸運に恵まれ、プログラムが1つのソリューション(上記で投稿したもの)を見つけるのに1分しかかかりませんでした。プログラムを繰り返し実行すると、多くの場合10〜20分かかるため、これは明らかに問題の厳密な解決策ではありませんでした。 パズルのあらゆる可能な順列を反復する再帰的ソリューションに切り替え、合計していない合計を削除することで、多くのソリューションを一度に破棄しました。IE私が比較した最初の行/列が既に等しくなかった場合、パズルに入れ替わったものがそれを変更しないことを知って、そのブランチのチェックをすぐに停止できました。 このアルゴリズムを使用して、最初の「適切な」成功が得られました。プログラムは、約5分で33,608のソリューションすべてを生成して吐き出すことができました。 私のマネージャーは異なるアプローチを持っていました:私の仕事に基づいて、可能な解決策は27、28、29、30、31、または32の合計しかないと知っていたので、彼はそれらの特定の値についてのみ可能な合計をチェックするマルチスレッドソリューションを書きました。彼はわずか2分でプログラムを実行することができました。だから私は再び繰り返しました。可能なすべての3/4桁の合計をハッシュし(プログラムの開始時に、合計ランタイムでカウントされます)、行の「部分合計」を使用して、以前に完了した行に基づいて、以前に完了した行に基づいて残りの値を検索しました残りのすべての値をテストし、時間を72秒に短縮しました。その後、いくつかのマルチスレッドロジックを使用して、40秒に短縮しました。私のマネージャーは、プログラムを家に持ち帰り、プログラムの実行方法についていくつかの最適化を実行し、12秒に短縮しました。行と列の評価を並べ替え、 私たちのどちらかが1か月後にプログラムを取得した最速の時間は、マネージャーが0.15秒、私が0.33秒でした。私のマネージャーのプログラムはすべての解決策を見つけましたが、それらをテキストファイルに出力しなかったので、私は私のプログラムがより高速であると主張しました。彼がコードにそのロジックを追加した場合、多くの場合、0.4〜0.5秒かかりました。 私たちは、以来、生存するまで、当社内の個人的な挑戦を許されましたが、当然のことながら、質問の遺跡は:することができます。このプログラムは高速化できますか? それが私が皆さんに提起する挑戦です。 あなたの挑戦 私たちが取り組んだパラメーターは、「29の合計」ルールを緩和し、代わりに「すべての行/列の合計が等しくなる」ようにしました。このルールを皆さんにも設定します。したがって、課題は次のとおりです。この謎に対するすべての解決策を可能な限り短時間で発見(および印刷!)するプログラムを作成します。提出されたソリューションに上限を設定します。比較的まともなコンピューター(<8歳)でプログラムに10秒以上かかる場合、カウントするには遅すぎる可能性があります。 また、パズルにはいくつかのボーナスがあります: ソリューションを一般化して、16個の数値のセットだけでなく、それでも機能するようにできますint[1,16]か?タイミングスコアは、元のプロンプト番号セットに基づいて評価されますが、このコードパスを通過します。(-10%) 重複した数値を適切に処理して解決する方法でコードを記述できますか?これは見かけほど簡単ではありません!「視覚的に同一」のソリューションは、結果セット内で一意である必要があります。(-5%) 負の数を処理できますか?(-5%) あなたもすることができますしようとハンドルがの浮動小数点数というソリューションを生成するが、それは全く失敗した場合はもちろん、ショックを受けることはありません。しかし、堅牢なソリューションを見つけた場合、それは大きなボーナスの価値があるかもしれません! すべての意図と目的に対して、「回転」はユニークなソリューションと見なされます。したがって、異なるソリューションの単なるローテーションであるソリューションは、独自のソリューションとしてカウントされます。 コンピューターで作業しているIDEはJavaとC ++です。他の言語からの回答を受け入れることもできますが、コードのセットアップが容易なランタイム環境を入手できる場所へのリンクも提供する必要があります。

3
ドットとボックスの最速プレーヤー
課題は、古典的な鉛筆と紙のゲームDots and Boxesのソルバーを書くことです。あなたのコードでは、2つの整数を取る必要がありますmし、nボードのサイズを指定する入力として。 空のドットグリッドから始めて、プレーヤーは交わり、隣接していない2つのドット間に単一の水平線または垂直線を追加します。1×1ボックスの4番目のサイドを完了したプレーヤーは1ポイントを獲得し、別のターンを取ります。(ポイントは通常、ボックスにプレーヤーの識別マーク(イニシャルなど)を置くことで記録されます)。これ以上行を配置できない場合、ゲームは終了します。ゲームの勝者は、最もポイントの多いプレーヤーです。 n = mまたはが少なくとも2であるn = m - 1と仮定できmます。 課題はsolve、1分以内で可能な最大のドットとボックスゲームです。ゲームのサイズは単純n*mです。コードの出力はである必要がありますwin。drawまたは、lose両方のプレーヤーが最適にプレイすると仮定した場合の最初のプレーヤーの結果になります。 コードは、簡単にインストールできる無料のツールを使用して、ubuntu上でコンパイル/実行できる必要があります。時間とともに1分でコンピューターで解くことができる最大の領域としてスコアを報告してください。次に、コンピューターでコードをテストし、ランク順に並べられたエントリのテーブルを作成します。 タイブレークの場合、勝者は1分以内に解決できる最大サイズのボードで最速のコードになります。 出力されたコードが勝ち負けだけでなく、実際のスコアも出力した方が良いでしょう。これにより、正当性の健全性チェックが行われます。

5
高速トリガー計算
高速三角法計算 あなたの仕事は、角度のサイン、コサイン、タンジェントを度で計算できるプログラムを作成することです。 ルール 組み込みの三角関数はありません(言語にこれらの関数がある場合は、割線、余割、余接もありません)。 ルックアップテーブルを使用できますが、それらの合計サイズは3000メンバーを超えてはなりません(3つの操作をすべて合わせて)。trig.lookupそれらがコードを混同しないように、ファイル(例えば)からテーブルを読むようにしてください。 ネットワークアクセスなし。 以下で説明するように、出力を正しく丸める必要があります。床や天井を使用しないでください。 有効桁数が7桁である限り、連続分数など、任意の方法を使用して値を計算できます。 あなたのコードはそれ自体で時間を計ることができなければなりません。ファイルI / O操作を時間から除外します。トリガーと丸めを行う関数の時間を計ってください。 私はあなたのコードを実行できなければなりません。自由に利用できるコンパイラ/インタプリタへのリンクを投稿し、コードをコンパイル/実行するために必要な指示を与えてください(GCCに渡すオプションなど)。 標準の抜け穴が適用されます。 入力フォーマット trig.inご使用の言語がファイルI / Oをサポートしていない限り、呼び出されたファイルから読み取ります。 角度は0から360までです。 入力は、改行で区切られた10桁の10桁の有効数字までの角度で構成されます。例えば: 90.00000000 74.54390000 175.5000000 出力フォーマット 指定された各角度に対して、スペースで区切られた7つの有効数字のサイン、コサイン、タンジェントを1行で出力する必要があります。1.745329E-5for tan 0.001や1.000000E+0for などの「科学表記」を使用しsin 90ます。 無限大またはNaNを表します。nたとえば、の出力はである90.00000000必要があります1.000000 0.000000 n。 入力が改行で区切られた3つの角度の場合、出力は3つのラインで構成され、各ラインにはサイン、コサイン、タンジェントが含まれます。 他には何も出力できません。 trig.outご使用の言語がファイルI / Oをサポートしていない限り、呼び出されたファイルへの出力。 得点 最速のコード。課題は、これらの3つの値をできるだけ迅速に計算するプログラムを作成することです。最も速い時間が勝ちます。 誰もが多くの角度の同じテスト入力を受け取ります。 時間は私のマシンに記録されます。 スコアは、同じ入力での3回の実行の平均です(実行の間に何も保存できないことは明らかです)。 コンパイル時間は含まれていません。この課題は、言語よりも使用される方法に関するものです。(誰かがJavaなどの言語のコンパイル時間を除外する方法を教えてくれたら、とても感謝しています) 私のマシンはUbuntu 14.04インストールです。プロセッサの統計はPastebinにあります(実行により取得されますcat /proc/cpuinfo)。 私はそれをテストしたときにあなたの答えにあなたの時間を編集します。

3
最長の非繰り返しGame-of-Lifeシーケンス
正の整数Nを与え、ゲームオブライフルールで最長の非反復シーケンスを生成し、トーラスで再生される固定パターン(長さ1のサイクル)で終わるN x Nグリッドの開始パターンを決定します。 目標は最短のプログラムではなく、最短のプログラムです。 世界は有限であるため、最終的にはループに陥り、すでに訪れた状態を繰り返します。このループに期間1がある場合、開始パターンは有効な候補です。 出力:開始パターンとシーケンス内の一意の状態の総数(開始パターンを含む)。 現在、1x1トーラスは特別なものです。セルはそれ自体に隣接していると見なされているかどうかに関係ありませんが、実際には問題はありません。いずれの場合も、単一の生きているセルは(過密または孤独の)死ぬだけです。したがって、入力1は、長さが2のシーケンスを生成します。このシーケンスは、1つのセルが生き、その後は永遠に死んでいます。 この質問の動機は、忙しいビーバー機能に類似しているが、メモリに限界があるため、間違いなく複雑です。これは、OEISにも含めるのに適したシーケンスです。 N = 3の場合、シーケンスの長さは3で、左側のパターンは完全に黒い3x3正方形に達し、その後死にます。(1サイクルの一部であるすべてのパターンが削除されます)。

30
Parrotプログラムを作成する
入力が与えられると、その入力の後に改行が際限なく続きます。 入力は、印刷可能なASCII文字(0x20-0x7E)と改行(0x0A)のみで構成される文字列になります。 入力の長さが0の場合、改行を無限に出力します。 これはコードゴルフなので、各言語で最も少ないバイトです勝ちます!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

8
積分三角形と積分中央値
各辺の長さが整数である三角形ABC(積分三角形)を考えます。ABCの中央値を、頂点から反対側の中点までの線分になるように定義します。次の図では、赤い線分が中央値を表しています。三角形には3つの中央値があることに注意してください。 してみましょうnはいくつかの正の整数です。各辺の長さがn以下の非縮退積分三角形には、少なくとも1つの積分中央値がありますか? チャレンジ 与えられた最大辺の長さnに対して少なくとも1つの積分中央値を持つ積分三角形の数を計算するプログラムを作成します。辺の長さの順序は重要ではありません。つまり、<6,6,5>は<5,6,6>と同じ三角形を表し、1回だけカウントする必要があります。<1,2,3>などの縮退三角形を除外します。 得点 私のマシンでプログラムが60秒で三角形の数を生成できる最大のnは、スコアです。最高スコアのプログラムが勝ちます。私のマシンはSony Vaio SVF14A16CLB、Intel Core i5、8GB RAMです。 例 ましょうT(Nは)入力にプログラムすることN。 T(1) = 0 T(6) = 1 T(20) = 27 T(22) = 34 T(1)= T(2)= T(3)= T(4)= T(5)= 0であることに注意してください。積分辺の組み合わせは積分中央値を生成しないためです。ただし、6に到達すると、三角形<5,5,6>の中央値の1つが4なので、T(6)= 1 であることがわかります。 また、T(22)はダブルカウントが問題になる最初の値であることに注意してください。三角形<16,18,22>には中央値13と17(および2sqrt(85))があります。 中央値の計算 三角形の中央値は、次の式で計算できます。 Current top score: Sp3000 - 7000 points - C

5
BrainF ***で最速のソート
BrainF ***でQuickSortを実装した後、おそらくそれほど速くないことに気付きました。通常の言語でO(1)である操作(配列のインデックス付けなど)は、BFでは大幅に長くなります。チューリングターピットでコーディングしている場合、効率的な並べ替えを行うルールのほとんどは、ウィンドウから除外できます。 そのため、「Fastest BrainF *** Sort Routine Ever」を実装するための課題があります。以下のインタプリタを使用して、すべてのエントリの時間を計ります。インタプリタは、符号なし文字の16Kテープを使用します。テープとセルの両方は、制限を超えて前進/増分するとラップします。EOFを読み取ると、現在のセルに0が設定されます。測定時間には、ソースファイルの解析時間とすべての入力ファイルの処理時間の両方が含まれます。最も速いコードが勝ちます。 テストベクトルは、次のようなエッジケースのソートをテストするために設計されたAsciiファイルのセットになります。 すでにソートされたリスト:「ordered」 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 逆ソートリスト:「逆」 ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! いくつかの一意の値の多くのコピーで構成されるファイル:「onlynine」 ibbkninbkrauickabcufrfckbfikfbbakninfaafafbikuccbariauaibiraacbfkfnbbibknkbfankbbunfruarrnrrrbrniaanfbruiicbuiniakuuiubbknanncbuanbcbcfifuiffbcbckikkfcufkkbbakankffikkkbnfnbncbacbfnaauurfrncuckkrfnufkribnfbcfbkbcrkriukncfrcnuirccbbcuaaifiannarcrnfrbarbiuk 完全にランダムなASCIIファイル:「ランダム」 'fQ`0R0gssT)70O>tP[2{9' 0.HMyTjW7-!SyJQ3]gsccR'UDrnOEK~ca 'KnqrgA3i4dRR8g.'JbjR;D67sVOPllHe,&VG"HDY_'Wi"ra?n.5nWrQ6Mac;&}~T_AepeUk{:Fwl%0`FI8#h]J/Cty-;qluRwk|S U$^|mI|D0\^- csLp~`VM;cPgIT\m\(jOdRQu#a,aGI?TeyY^*"][E-/S"KdWEQ,P<)$:e[_.`V0:fpI zL"GMhao$C4?*x 範囲1..255を超えるランダムファイル: "wholerange" öè—@œ™S±ü¼ÓuǯŠf΀n‚ZÊ,ˆÖÄCítÚDý^öhfF†¬I÷xxÖ÷GààuÈ©ÈÑdàu.y×€ôã…ìcÑ–:*‰˜IP¥©9Ä¢¬]Š\3*\®ªZP!YFõ®ÊÖžáîÓ¹PŸ—wNì/S=Ìœ'g°Ì²¬½ÕQ¹ÀpbWÓ³ »y »ïløó„9k–ƒ~ÕfnšÂt|Srvì^%ÛÀâû¯WWDs‰sç2e£+PÆ@½ã”^$f˜¦Kí•òâ¨÷ žøÇÖ¼$NƒRMÉE‹G´QO¨©l¬k¦Ó 各入力ファイルは最大で255バイトです。 こちらが通訳です。これは、コンソールモードのWindows用に書かれていますが、ポートに簡単にする必要があります:ちょうど置き換えるread_time()とsysTime_to_ms()、プラットフォーム固有の同等物。 使用法: bftime program.bf infile1 [infile2 ...] #include <windows.h> #include <stdio.h> #define MS_PER_SEC 1000.0f #define MAXSIZE (0x4000) #define MAXMASK (MAXSIZE-1) typedef …

12
おおよその相関を見つける
S長さのバイナリ文字列を考えnます。インデックス作成1、我々は計算することができハミング距離の間S[1..i+1]とS[n-i..n]すべてのためにiから順に0しますn-1。等しい長さの2つのストリング間のハミング距離は、対応するシンボルが異なる位置の数です。例えば、 S = 01010 与える [0, 2, 0, 4, 0]. これは0マッチ0、01ハミング距離が2に10、010マッチ010、0101 4にハミング距離があり1010 、最終的に01010自分自身にマッチします。 ただし、ハミング距離が最大1である出力のみに関心があります。したがって、このタスクではY、ハミング距離が最大で1であるかどうかを報告し、N場合そうでないます。したがって、上記の例では次のようになります [Y, N, Y, N, Y] すべてを反復するときに取得されるsとsのf(n)個別の配列の数になるように定義するYN2^nS長さの異なる可能性のあるビット文字列をn。 仕事 n開始時の増加1場合、コードを出力する必要がありますf(n)。 回答例 のn = 1..24正解は次のとおりです。 1, 1, 2, 4, 6, 8, 14, 18, 27, 36, 52, 65, 93, 113, 150, 188, 241, 279, 377, 427, 540, 632, 768, 870 …


12
そして、すべての人々が言っ​​た...
目的文字[またはを含まないテキストの入力を前提として]、次のアクションを実行します。 すべてのインスタンスのためのAmen少なくとも一つの大文字で(そのすべてのインスタンスAmenを除くamen)、同じことを出力Amen(時価総額を保持)。 /all the people said[?: ]/i(正規表現である)のすべてのインスタンスに対して、出力も行いますAmen(どんな場合でも問題ありません)。 すべての出力の後に、改行、スペース、無などの定数セパレーターを選択できます。 これはcode-golfであるため、バイト単位の最短プログラムが優先されます。 IOの例 Input: I said AMEN! AMEN, PEOPLE! Output: AMENAMEN ; any separator is fine, I choose none. Input: amen amen amen amen Output: ; nothing Input: ; empty Output: ; nothing Input: *blah blah blah* And all the people said? Output: …

7
各サイズのテプリッツ行列の最大行列式を見つける
固定nの場合、0または1のエントリを持つn行n列のテプリッツ行列を考えます。目的は、このようなテプリッツ行列すべての最大行列式を見つけることです。 仕事 それぞれn1から上に、0または1のエントリを持つすべてのn行n列のテプリッツ行列の最大行列式を出力します。n最大行列式とそれに到達する行列の例が1つあります。 スコア スコアは、n私のコンピューター上でコードが2分以内に到達する最大のスコアです。少し明確にするために、コードは合計で2分間実行できますが、これはあたり2分ではありませんn。 タイ・ブレーカー 2つのエントリが同じnスコアを獲得した場合、勝者のエントリはn、マシン上で最短時間で最高のエントリになります。この基準でも2つのベストエントリが等しい場合、勝者は最初に送信された回答になります。 言語とライブラリ 自由に利用できる任意の言語とライブラリを使用できます。私はあなたのコードを実行できなければならないので、可能な限りLinuxでコードを実行/コンパイルする方法の完全な説明を含めてください。 私のマシンタイミングは私のマシンで実行されます。これは、AMD FX-8350 8コアプロセッサへの標準のUbuntuインストールです。これは、コードを実行できる必要があることも意味します。 小さな答え n = 1..10の場合、出力は1,1,2,3,5,9,32,56,125,315になります このシーケンスはOEISにはないため、受賞エントリはそこに新しいエントリを提案することもできます。 これまでのエントリー n=10 n=11Pythonの Viozによる n=9ティロによるC n=12ルジャンドルのJ n=10Rの Tensibaiによって n=14C ++の SteelRavenによる n=14C ++の RetoKoradiによる

2
このゲームで勝った単語のセットを見つけるための最速のpythonコード
これは、子供向けの一連のアクティビティカードからの単語ゲームです。ルールの下には、/ usr / share / dict / wordsを使用して最適なトリプレットを見つけるためのコードがあります。私はそれが面白い最適化問題だと思い、人々が改善を見つけることができるかどうか疑問に思っています。 ルール 以下の各セットから1つの文字を選択します。 選択した文字(およびその他の文字)を使用して単語を選択します。 単語を採点します。 選択したセットの各文字には、セットに表示されている番号が付けられます(繰り返しが含まれます)。 AEIOU カウント0 他のすべての文字は-2 上記の手順1〜3(手順1で文字を再利用しない)をさらに2回繰り返します。 最終スコアは、3つの単語スコアの合計です。 セット (1点を1点に設定、2点を2点に設定など) LTN RDS GBM CHP FWV YKJ QXZ コード: from itertools import permutations import numpy as np points = {'LTN' : 1, 'RDS' : 2, 'GBM' : 3, 'CHP' : 4, …

4
最速の近似公約数
概要 この課題では、中規模の数値の倍数よりも大きい小さなオフセットである2つの数値が与えられます。小さなオフセットを除いて、両方の数値のほぼ除数である中規模の数値を出力する必要があります。 関係する数値のサイズは、難易度パラメーターによってパラメーター化されますl。あなたの目的は、l1分以内に可能な限り最大の問題を解決することです。 セットアップ 特定の問題では、秘密の番号がありp、これはランダムl^2(l*l)ビット番号になります。乗算器は2つありq1, q2、これはランダムなl^3ビット番号になりr1, r2、オフセットは2つありlます。 プログラムへの入力はx1, x2、次のように定義されます。 x1 = p * q1 + r1 x2 = p * q2 + r2 Pythonでテストケースを生成するプログラムを次に示します。 from random import randrange from sys import argv l = int(argv[1]) def randbits(bits): return randrange(2 ** (bits - 1), 2 ** bits) p = randbits(l ** …

2
他のすべてからどれくらい離れているかを数えます
等しい長さの2つのストリング間のハミング距離は、対応するシンボルが異なる位置の数です。 してみましょうP長さのバイナリ文字列にするnとT長さのバイナリ文字列です2n-1。のすべての長さの部分文字列のn間のハミング距離を左から右に順番に計算し、それらを配列(またはリスト)に入れることができます。PnT ハミング距離シーケンスの例 させP = 101てくださいT = 01100。このペアから得られるハミング距離のシーケンスは2,2,1です。 近さの定義 次に、このようなハミング距離のシーケンスを2つ考えてみましょう。と言うx = (0, 2, 2, 3, 0)とy = (2, 1, 4, 4, 2)例として。私たちはそれを言ってxおりy、closeもしy <= x <= 2*yそうならx <= y <= 2*x。ここで、スカラー乗算と不等式は要素ごとに取られています。つまり、2つのシーケンスAとB、A <= B iff A[i] <= B[i]すべてのインデックスに対してi。 ハミング距離のシーケンスは、これらの比較方法では半順序を形成することに注意してください。言い換えれば、シーケンスの多くのペアは、互いに大きくも等しくも小さくも等しくありません。たとえば(1,2)と(2,1)。 したがって、上記の例を使用して、(0, 2, 2, 3, 0) <= 2*(2, 1, 4, 4, 2) = (4, …

1
クロスワードをひねりながら読んでください!
この質問に似ていますが、これはクロスワードのバリエーションです! グリッドの正方形ごとに1文字だけではなく、1 つまたは 2つのを使用できます。 入力: 2次元配列、またはあなたの言語で機能するもの。 有効な入力を想定できます 任意の配列サイズが機能する必要があります 出力: すべての単語の配列 前後 すべての単語を結合する必要があります。つまり、切れ目のない単語のチェーンでリンクします(falseを返さない場合) 単語は、文字ではなく、少なくとも2つのグリッド正方形でなければなりません 例: [["", "wo", "r", "k"], [ "", "r", "", ""], [ "he", "l", "lo", ""], [ "", "d", "ad", ""]] 戻り値: ["work", "world", "hello", "load", "dad"] 例: [["he", "ll", "o"], [ "", "", ""], [ "wo", "r", …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.