問題タブ [code-golf]

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 投票する
46 に答える
14910 参照

code-golf - Code Golf: Pi のライプニッツ公式

私は最近、ライプニッツの公式を使用して Pi を計算する関数を作成することである、" What's you more物議を醸しているプログラミングの意見"に私のお気に入りのインタビュー ホワイトボード コーディングの質問の 1 つを投稿しました。

さまざまな方法でアプローチでき、終了条件は少し考えなければならないので、興味深いコード ゴルフの質問になるのではないかと思いました。最短コードが勝つ!

関数 4 * (1 - 1/3 + 1/5 - 1/7 + ...) を使用して Pi を推定できることを考えると、項が多いほど精度が高くなり、Pi を 0.00001 以内で計算する関数を作成します。

編集: 2008 年 1 月 3 日

コメントで示唆されているように、私は終了条件を 0.00001 以内に変更しました。それが私が本当に意味したことです (小数点以下 5 桁の精度は丸めのためにはるかに難しいため、インタビューでそれを尋ねたくはありませんが、0.00001 以内は終了条件の理解と実装が容易になります)。

また、コメントに答えるために、私の意図は、ソリューションが反復回数を計算するか、十分に完了したかを確認することだったと思いますが、反復回数を事前に計算してその数を使用することを妨げるものは何もありません。人々が何を思いつくかを見るために、私は本当に興味を持って質問をしました。

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

cryptography - コードゴルフ: Diffie-Hellman 鍵交換

ITAR 時代にさかのぼると、Diffie-Hellman 鍵交換を実行する人気のある sigがありました。

最新の DC では、これを次のようにかなり減らすことができます。

べき乗剰余コマンド ('|' は、効率的な指数倍増によって g^e % m を計算します) を使用した最新の dc 形式は、おそらくAPL以外では無敵ですが、元の形式を改善することはできますか? e と m の値は非常に大きくなることに注意してください。どちらも、暗号化セキュリティのためにそれぞれ 1024 ビットのオーダーになります。

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

linux - Bashテキスト解析ゴルフ

私はシェル スクリプトを作成して、とりわけ、subversion リポジトリで最後にブランチが作成された時刻を特定しています。次のコードが機能します。

でも、最後の2行は好きじゃない。どうすればそれらを組み合わせることができますか?

末尾のスラッシュを削除しようとしています

0 投票する
33 に答える
22221 参照

language-agnostic - 数字のコレクションで最も近い一致を見つける

それで、私は今日、コレクション内でクローズマッチを見つけるための最良の方法は何であるかを尋ねられました。

たとえば、次のような配列があります。

4に最も近い数はいくつですか?

コレクションは数値であり、順序付けられておらず、何でもかまいません。一致する番号と同じです。

選択したさまざまな言語から、私たちが何を思いつくことができるかを見てみましょう。

0 投票する
26 に答える
7620 参照

algorithm - コード ゴルフ: 複数の並べ替えられたリストを 1 つの並べ替えられたリストに結合する

任意の数のソート済みリストを 1 つのソート済みリストにマージするアルゴリズムを実装します。目的は、好きな言語で最小の作業プログラムを作成することです。

例えば:

: 入力リストを連結してから言語提供の並べ替え関数を使用するソリューションは、ゴルフの精神に沿わないため、受け入れられません。

他のものとは別に、アルゴリズムははるかに高速である必要があります (ただし、そうである必要はありません)。

言語、弱点、文字数を明確に述べてください。カウントには意味のある文字のみを含めますが、芸術的/読みやすくするためにコードに空白を自由に追加してください。

物事を整理するために、「改訂」ごとに新しい回答を作成するのではなく、コメントで改善を提案するか、必要に応じて回答を編集してください。

編集: この質問を再度送信する場合は、「ソートを提供する言語なし」ルールを「すべてのリストを連結せずに結果をソートする」ように拡張します。concatenate-then-sort を行う既存のエントリは、実際には非常に興味深くコンパクトであるため、それらが違反するルールをさかのぼって導入することはしませんが、新しい提出物でより制限的な仕様に自由に取り組んでください。


Python でソートされた 2 つのリストを結合することに触発されました

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

python - Python Golf: このリストのリストを辞書に変換する最も簡潔な方法は次のとおりです。

次のようなリストのリストがあります。

そして、各キーが名前で、各値がリスト内のサブリストの位置に対応する番号である辞書に変換したいと思います。

さまざまなリスト内包表記を試しましたが、入れ子になったリストで正しく動作させることができませんでした。次のように、ネストされたループを使用できます。

しかし、それを行うためのより短く、よりエレガントな方法があると思います。

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

language-agnostic - 検索結果の解析とフォーマット

探す:

Scripting+Language Web+Pages アプリケーション

結果:

...元々スクリプト言語... 動的なWeb ページを作成していました。それは...グラフィカルなアプリケーション....出力としてWebページを作成する目的のスクリプト言語...

一致した用語の両側にパディングとして許可する文字数を表す値と、結果に表示される一致数を表す別の値が必要だとします (つまり、最初の 5 つの一致のみを表示したい、これ以上何もない)。

これを行うには、どのように正確に行いますか?

これはかなり言語に依存しませんが、PHP 環境でソリューションを実装するので、特定の言語やフレームワークを必要としないオプションへの回答を制限してください。

これが私の思考プロセスです。検索語から配列を作成します。記事本文のどこにあるかに関して、どの検索語が最も低いインデックスを持っているかを判断します。本文のその部分を別の変数に集めてから、記事本文からそのセクションを削除します。ステップ 1 に戻ります。各単語にカウンターを追加し、カウンターが 3 程度になるとスキップすることもできます。

重要:

ソリューションは、非線形の方法ですべての検索用語に一致する必要があります。つまり、用語 1 は、用語 2 の後に存在する場合、用語 2 の後に見つける必要があります。同様に、ターム 3 の後にも見つける必要があります。ターム 3 は、ターム 1 および 2 の前に存在する場合は、ターム 1 および 2 よりも前に見つける必要があります。

この解決策では、「用語ごとに最大 3 つの一致のみを許可し、その後要約を終了する」と宣言できるようにする必要があります。

追加クレジット:

char ではなく単語をオプションでパディングするには、padding-variable を取得します。

0 投票する
14 に答える
1072 参照

string - リスト内の最も長い項目の長さを見つける最も効率的な方法は何ですか?

さまざまな長さの単語のリストが与えられた場合、任意の単語の最大長を見つける最善の方法は何ですか?

たとえば、次の場合は 6 が返されます。


もちろん、これを行うのはかなり簡単です...


というか、もう少し短く...


しかし、より効率的な方法はありますか?

おそらくいくつかのJavaメソッドですか?配列に変換してアイテムの長さで並べ替えますか? コンマ間の最大のギャップを数えますか?


実際には、上記の 2 つの例のどちらも私の現在のニーズには問題なく機能します。これはパフォーマンスが重要な場合ではないため、これに対する回答は必要ありませんが、それでも興味深いと思いました。人々が何を思いつくか見てみましょう...

0 投票する
6 に答える
1145 参照

code-golf - CodeGolf: 与えられた数の素因数を計算する

http://codegolf.com/prime-factorsに着想を得て、最小限のキーストロークでこの問題を解決してみてください。

悲しいことに、競合できるのは Perl/PHP/Python/Ruby だけです。この問題が、それほど伝統的ではない他の言語で解決さ​​れることを期待しています。

0 投票する
5 に答える
298 参照

code-golf - ゴルフ - テキスト ファイルのテンプレートを展開する

Golf - シンプルなテンプレート スキームを実装します。

展開は次のとおりです。

  • %KEY% -> 値
  • %% -> %

コマンドライン引数:

  • key=valueARG1:例のようなスタイルでフォーマットされた辞書ファイル
  • ARG2: テンプレートファイル

ここで私のあまりゴルフの試み(python):261文字。

DICT

テンプレート

結果

はい、これは欠陥のあるテンプレートシステムであり、より短くより良い実装のために「スナップ」していることを認識しています。