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

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

9
階乗の分岐
このゴルフでは、要因計算を複数のスレッドまたはプロセスに分割する必要があります。 一部の言語はこれを他の言語よりも調整しやすいため、言語に依存しません。非ゴルフのサンプルコードが提供されていますが、独自のアルゴリズムを開発する必要があります。 コンテストの目標は、Nを計算するための最短(秒単位ではなく、バイト単位)のマルチコア要因アルゴリズムを誰が思い付くかを確認することです。コンテスト終了時の投票数で測定されます。マルチコアの利点があるはずなので、N〜10,000で機能する必要があります。著者がプロセッサ/コア間で作業を分散する方法の有効な説明を提供できなかった場合、投票者は投票し、ゴルフの簡潔さに基づいて投票する必要があります。 好奇心のために、いくつかのパフォーマンスの数値を投稿してください。ある時点でパフォーマンスとゴルフスコアのトレードオフが存在する場合がありますが、要件を満たしている限り、ゴルフを使用します。これがいつ起こるのか知りたいです。 通常利用可能なシングルコアのビッグ整数ライブラリを使用できます。たとえば、perlは通常bigintと共にインストールされます。ただし、階乗関数が提供するシステムを呼び出すだけでは、通常、複数のコアに作業が分割されないことに注意してください。 入力NをSTDINまたはARGVから受け入れ、N!の値をSTDOUTに出力する必要があります。オプションで2番目の入力パラメーターを使用して、プログラムにプロセッサー/コアの数を提供することもできます。これにより、以下に示す内容が実行されなくなります。 以下に、異なる言語の要因アルゴリズムのスタックオーバーフローで以前に提出した、独自の奇数ボールperlの例を投稿します。ゴルフではありません。多数の他の例が提出されました。それらの多くはゴルフですが、多くはそうではありません。シェアライクライセンスのため、上記のリンクの例にあるコードを出発点として自由に使用してください。 私の例のパフォーマンスは、いくつかの理由で不十分です:あまりにも多くのプロセス、過度の文字列/ bigint変換を使用します。私が言ったように、それは意図的に奇妙な例です。5000を計算します!ここでは4コアマシンで10秒未満で。ただし、より明確な2ライナーfor / nextループは5000を実行できます!3.6秒の4つのプロセッサの1つ。 あなたは間違いなくこれよりもうまくやらなければなりません: #!/usr/bin/perl -w use strict; use bigint; die "usage: f.perl N (outputs N!)" unless ($ARGV[0] > 1); print STDOUT &main::rangeProduct(1,$ARGV[0])."\n"; sub main::rangeProduct { my($l, $h) = @_; return $l if ($l==$h); return $l*$h if ($l==($h-1)); # arghhh - multiplying …
12 code-golf 

5
分離プレス
http://en.wikipedia.org/wiki/Dissociated_press Dissociated Pressは、既存のテキストからランダムテキストを生成するアルゴリズムです。 アルゴリズムは、テキスト内のN個の連続した単語(または文字)を印刷することから始まります。次に、すべてのステップで、すでに印刷された最後のN個の単語(または文字)の元のテキストでのランダムな出現を検索し、次の単語または文字を印刷します。 関数またはプログラム全体として、Dissociated Pressを実装します。最短のコードが優先されます。コマンドラインまたはemacsスクリプトを使用して、元のDissociated Pressプログラムを呼び出さないでください。外部ライブラリを使用しないでください。


7
どのくらいの雪を手に入れましたか?
言葉遣いに謝罪。私たちは社内ゴルフで仕事でそれを楽しんでいましたが、明確にするためにいくつかのメールが必要でしたので、私はそのほとんどを初めてキャプチャしたことを望みます。 問題 「シミュレートされた」降雪スナップショット(関数/メソッドへの文字列、標準入力、またはパラメータとして)が与えられた場合、4つの値(最小深度、最大深度、平均深度、および期間)をレポートします。 入力を説明するためのフォーマットされた例を次に示します。 * * ** ** * *** ** * * * -------- 「*」は雪の結晶、「-」は地面です。それらのすべての「雪片」が地面に向かって落ちることを想像してください。これが最後の「スナップショット」です。 * * ** * ** ******** -------- 次について報告する必要があります。 最小深度-最短の「パイル」をカウントします(上記の例では1) 最大深度-最も高い「パイル」をカウントします(上記の例では4) 平均深度-すべての「パイル」の平均数(上記の例では1.9-10分の1に丸める) 期間-(各「フォール」= 1秒)-最初のスナップショットから最後のスナップショットまでの時間(上記の例では3秒) 参考のための別の例: * * * * * -------- 最終スナップショット: * * *** -------- 入力 開始の「スナップショット」には、8つの「行」、8つの「列」があり、パイプで区切られます(パイプによって行が区切られます)。例(引用符を除く): “ | | | | * | …
12 code-golf 

3
JSONバリデーターを書く
入力が有効なJSONかどうかを判断するプログラムを作成します。 入力: ASCIIテキスト:[\x00-\x7F]* 注:ASCIIに問題がある場合は、別のエンコードを使用しても構いませんが、投稿でそれを示してください。 出力: ValidまたはInvalid。末尾の改行は省​​略できます。 例: $ echo '{"key": "value"}' | ./json-validate Valid $ echo '{key: "value"}' | ./json-validate Invalid ルール: JSON解析ライブラリを使用しないでください。 部分的に正しいソリューションは許可されますが、眉をひそめます。 テストスイートのスコアを投稿します(以下を参照)。 最短正しいですソリューションの勝利。 プログラムでjson-validate-test-suite.shを実行し、スコアを投稿してください。例: $ ./json-validate-test-suite.sh ./buggy-prog fail: should be invalid: [ 0.1e ] fail: should be invalid: [ 0.1e+-1 ] fail: should be invalid: [ 0.1e-+1 …
12 code-golf 

6
面積の計算。
曲線p(x)= a 0 + a 1 * x + a 2 * x 2 + ...、ラインy = 0、ラインx = 0、ラインx = Cの間の面積を与える最小コード (つまり、このようなもの: ) x <Cに対してp(x)> = 0(コードがp(x)の負の値に対して機能する場合のボーナスポイント)と仮定できます。 入力 C、0、1、... 出力 実数-エリア 例1: input: 2, 0, 1 output: 2.0 例2: input: 3.0, 0, 0.0, 2 output: 18 更新: C> 0も想定されます …
12 code-golf 

14
対称マップを完成させる
入力としてx軸とy軸に対して対称なマップの4分の1が与えられます。プログラムは完全なマップを印刷する必要があります。 マップには次の文字を含めることができます:-+/\|.、それらは期待どおりに回転する必要があります。入力データは常に長方形で小さくなります。 例 $ cat in +--- |./. |/.. $ ./solution < in +------+ |./..\.| |/....\| |\..../| |.\../.| +------+ 最短のコードが優先されます。
12 code-golf  string 

1
グラフの最短経路
プログラムを作成して、グラフを(標準入力または選択したファイルから)取得し、グラフ内の最短パスを見つけます。 グラフは、次の形式を使用して指定されます。 A---S F--T | / \ | | / 5 0 |/ \| D----3--E A-Z: nodes in the graph -|/\: edges in the graph 0-9: weights on the edges <space>: all the holes すべてのエッジは無方向で、8つの基本方向のいずれかに沿って配置されます(つまり、曲がりません)。エッジには、オプションで0〜9の重みを含めることができます。重みは、エッジをノードに接続する最後のシンボルにはありません(つまり、エッジには、重みを含めるために少なくとも3つのシンボルが必要です)。重みなしエッジのデフォルトの重みは1です。 コードは、ノード間の最短経路を計算する必要がありSそしてT長さおよび経路を印刷し、このように: 5:SDEFT 最短の正しいプログラムが勝ちます。

18
ヒストグラム生成
ヒストグラム(データの分布のグラフィカルな表現)を生成する最短のプログラムを作成します。 ルール: プログラムに入力された単語(句読点を含む)の文字長に基づいてヒストグラムを生成する必要があります。(単語の長さが4文字の場合、数字4を表すバーは1ずつ増加します) バーが表す文字の長さと相関するバーラベルを表示する必要があります。 すべてのキャラクターを受け入れる必要があります。 バーをスケーリングする必要がある場合は、ヒストグラムに表示される何らかの方法が必要です。 例: $ ./histogram This is a hole in one! 1 |# 2 |## 3 | 4 |### $./histogram Extensive word length should not be very problematic. 1 | 2 |# 3 |# 4 |## 5 | 6 |## 7 | 8 | 9 |# …

9
郵便配達
私は郵便配達員としての仕事を得たばかりで、それを維持するためにあなたの助けが必要です。配達する前にたくさんのメールを注文する必要があります。 道路には、道路の先頭の1から始まり、最後まで番号がスキップされずに順番に番号が厳密に付けられ、左側に奇数、右側に偶数が付けられます。また、後に家が追加されたため、市民番号に文字が追加される場合があります。 チェストには街のすべての郵便物が入っているので、通りの郵便物のみを選択する必要があります。 メールをより速く注文するには、あなたの助けが必要です。私があなたに尋ねるのは、関数または完全なプログラムを書くことです: -通りの名前。 -私のパスに続いて注文された市民番号のリスト。 -アドレスのリスト(メールボックスを表します)。 そして、私の番地の住所のみを含む住所のリストを出力し、市民番号のリストに従って順序付けします。 アドレスの形式は次のとおりです。 Person Name/n CivicN Street Name ここCivicNは、「/」と大文字(10 10 / B)が続くことができる数です。必要に応じて、小文字を使用できます。 ストリート名が重複している場合、それらは異なるストリートと見なされます。 Church Road != Saint Lorenz Church Road 簡単にするために、残りのアドレスは省略します(すべてのメールで同じであると仮定) 最短の回答が得られるように、手紙は早く届けられなければなりません。 例: レイアウト : 1 1/B 3 5 7 9 11 13 ============================== 2 4 4/B 6 入力: "Tea Avenue" ["1","1/B","2","4","3","5","7","4/B","6","9","11","13"] ["Mrs. Pie …
12 code-golf  string 

6
途切れた言葉を修正する
St音は、私たちの多くが経験したか、少なくとも見たことがある問題です。有名な音声認識ソフトウェアのほとんどは、speaking音の話に関して深刻な問題を抱えていますが、st音は理解できますが、修正することはできず、そのまま書くだけのソフトウェアを想像してみましょう。 そのようなソフトウェアによって書かれたテキストの例は、次のようになります:「注意してください」。この例では、「注意」が元の単語であり、「ca ca」がthe音の単語です。 チャレンジ 元の単語を保持したまま、入力から単語を削除することにより、st音の単語を修正するプログラムまたは関数を作成します。たとえば、「注意してください」の修正バージョンは「注意してください」となります。 これはcode-golfであり、すべての言語で最短の答えが得られます! どもり言葉とは何ですか? St音にはさまざまなバリエーションがあります。ただし、この課題を簡単にするために、次のルールに制限します。 St音の単語は、元の単語の未完成の部分または全体である場合があります。「未完成の部分」とは、元の単語がst音の単語から正確に始まることを意味します。たとえば、「OPE」と「オープン」の両方がどもっための単語ことができ、「オープン」が、「ペン」以来の1にすることはできません「オープン」で始まらない「ペン」。 St音の単語には、少なくとも1つの「あいうえお」母音が含まれている必要があります。たとえば、「star」は「a」を含むため「start 」のst音の単語になりますが、「st」は上記の母音が含まれないためst音の単語にはなりません。 St音の単語は元の単語の前にのみ表示され、有効になるには少なくとも2回繰り返される必要があります(元の単語は繰り返しにはカウントされません)。たとえば、「oo open」は単語が途切れますが、「o open o」はそうではありません。元の単語の後の「o」はカウントされず、元の単語の前の「o」は少なくとも2回繰り返されないためです。「ゴーゴーゴーゴーゴーゴー」は、元の単語の前にst音の単語が5回繰り返されており、有効です。 繰り返しst音の単語の単一のセットに混合形式を含めることはできず、単語は互いに正確に一致する必要があります。たとえば、「op o op open」は、単語がcount音としてカウントされません。一方、「o op op open」は、最初の「o」がここではまったく異なる単語と見なされ、2つの「op」が「open」の st音単語としてカウントされるため、単語をst音にしています。 複数の有効な繰り返し単語が連続して繰り返される場合、最後の元の単語のみが残ります。たとえば、「ooo op op op open」では、「oo o」の部分が最初の「op」の st音の単語と見なされるため、削除してから「op op op」を「open」のopen音の単語と見なします「彼らは、あまりにも除去しなければならないので、唯一の『オープン』どもっ言葉を除去した後に残されます。繰り返しst音単語の複数の有効なセットが左から右にのみ発生すると想定できるため、「op op ooo open」を修正すると「op op open」(別名 入力 入力は、ASCII英語文字(az)、数字(0-9)、およびスペース文字のみを含む1行の文字列です。文字の大文字小文字は重要ではなく、小文字、大文字、またはその両方を受け入れることができますが、大文字小文字は同じままにして、出力で変更することはできません。 ["l","i","s","t"," ","o","f"," ","l","e","t","t","e","r","s"]文字列の代わりに文字のリスト(など)を使用できますが、単語のリストは使用できません。言語の入力構造が異なる場合は、それを使用します。重要なのは、入力を単語で区切るべきではないため、一部の言語で単語を区切るコストが実際に他の創造的なソリューションを引き起こす可能性があるということです。 入力には、何も含まれないか、1つまたは複数のst音が含まれる場合があります。 単語や数字は単一のスペースで区切られ、入力には隣同士に二重のスペースは含まれません。 出力 文字列、文字のリスト、または言語内の適切な構造で、st音の単語はすべて入力から削除されます。 出力ワードは、正確に1つのスペースで区切る必要があります(入力と同じ)。 単一の先頭と末尾の改行またはスペースが許可されます。 標準的な抜け穴は禁止されています。 テストケース …
12 code-golf  string 

20
お問い合わせ回答者
オリジナル:https : //james-iry.blogspot.co.at/2009/05/brief-incomplete-and-mostly-wrong.html Alain Colmerauerは、論理プログラミング言語Prologを設計しました。彼の目標は、2歳の子供と同じくらいインテリジェントなプログラミング言語を作成することでした。彼が目標を達成したことを証明するために、彼はすべての問い合わせに対して「いいえ」と答えるPrologプログラムを提示しました。 何でも聞いて! ?- (もちろん彼はしませんでした。)あなたの仕事は、Alain Colmerauerのプログラムよりもインテリジェントなプログラムを作成することです。これはPrologにある必要はありません。 仕様 入力が終了し?、少なくとも1つある,場合、最後から最後,までのテキストを返します?。 それ以外、入力が?returnで終了する場合No。 それ以外の場合、戻りYesます。 ルール 標準的な抜け穴はありません。 入出力は、標準の入出力メソッドを介して取得されます。 あなたのプログラムは、少なくとも1つの問い合わせが必要です。 処理された照会を出力する必要があります。 YesとNoのは、実施例において、大文字と小文字が区別されています。 入力にが含まれる場合、入力には?1つのみが含まれ、?常に最後の文字になることが保証されます。 入力は常にフレーズ/センテンスになります。このフレーズ/文は文字のみが含まれることはありません,と?、例えば,、?、および,?有効な入力ではありません。(とにかく、サブミッションはそれを実装するかもしれませんが、これらの場合、フレーズ/センテンスは空の文字列です。) また、入力がで終わることはありません,?。 最後の,直後または空白の直前に空白がある場合は?、出力に含める必要があります。 例 Hmm. -> Yes Alright, -> Yes Ask me anything! -> Yes Ask me a question, please! -> Yes Are you okay? -> No No? -> No …
12 code-golf  string 

13
MalbolgeからMalbolgeへの翻訳者を正規化
このタスクでは、正規化Malbolgeプログラムを取得し、結果のMalbolgeプログラムを出力するプログラム/関数を作成します。(これは、すべてのMalbolgeプログラマが使用している秘密のツールです!) 入力 (何らかの形で)正規化されたMalbolgeプログラムを表すデータ構造。 出力 結果のMalbolgeプログラムを表すデータ構造。 例 jpoo*pjoooop*ojoopoo*ojoooooppjoivvvo/i<ivivi<vvvvvvvvvvvvvoji (=BA#9"=<;:3y7x54-21q/p-,+*)"!h%B0/.~P<<:(8&66#"!~}|{zyxwvugJ% jjjj*<jjjj*<v ('&%#^"!~}{XE jjjjjjjjjjjjjjjjjjjjjjj*<jjjjjjjjjjjjjjjjjjjjjjjj*<v ('&%$#"!~}|{zyxwvutsrqpnKmlkjihgfedcba`_^]\[ZYXWVT1| 変換方法 正規化されたMalbolgeプログラムを反復処理し、各文字に対して次の手順を実行します。 文字列の文字*jpovi</をの対応する文字に置き換え'(>DQbcuます。(すなわち、マップ*に'、jへ(、など)。 次に、文字のASCIIコードからプログラムカウンターの現在の位置(つまり、現在の前の文字数)を減算します。 結果のASCIIコードが33未満の場合は、94ずつ増やし、少なくとも33になるまで繰り返します。 結果の文字を出力に追加します。 ルール これは、コードとゴルフのコンテストです。最短の答えが勝ちます。 標準的な抜け穴はありません。 デフォルトのI / Oメソッドが許可されています。 入力には文字のみが含まれます*jpovi</。
12 code-golf  string 

8
ジミーには新しい靴が必要です!
ジミーは先週、これら すべてのプラットフォーム と ロープで忙しくしており、貧しいジミーには足や足さえありません! あなたの仕事は、複数のジミーを含むストリングを取り、足と靴を与えることです! ジミー文字列の形式で入力を取得する ジミー・ストリング=> /o\ /o\ /o\ とのみ/o\を 含む 入力の各ジミーに次のような足を与えます。 /o\ _/ \_ 次のように、入力されたフローティングヘッドジミー文字列をフィート文字列付きジミーに変換します。 // Input /o\ /o\ /o\ // Output /o\ /o\ /o\ _/ \_ _/ \_ _/ \_ 2人のジミーが近くにいる場合、部屋を空けるために移動しなければなりません。ジミーは常に右に移動して他のジミーの部屋を空けます。 // Input /o\/o\ // Output /o\ /o\ _/ \__/ \_ 遠くにいる他のジミーは、必要でない限り移動してはいけません // Input /o\/o\ /o\ // …

30
最後に入力されたバイトを印刷
チャレンジ 入力バイトの1つの文字列があり、その中の最後のバイトを出力します。 ルール あなたの提出は、入力の最後のバイトを出力するプログラムまたは関数である可能性があります 文字列、標準入力、またはコマンドライン引数のいずれかであり、 空ではありません。 私はこれをBrainfuckで解決しようとしていましたが、すべての言語が参加できます。これはcode-golfです。 例 "?" -> "?" "29845812674" -> "4" カタログ この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、スニペットに表示することもできます。 ## [><>](https://esolangs.org/wiki/Fish), 121 bytes コードスニペットを表示 /* Configuration */ var …
12 code-golf  string 

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