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

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

2
私のグラフは優雅ですか?
A 優雅なグラフの種類であるシンプルなグラフ。優雅なグラフは特別です。すべてのノードに正の整数でラベルを付ける方法があるため、エッジが接続するノードの違いでエッジにもラベルが付けられる場合、2つのエッジが同じラベルを持たず、すべてのラベルはエッジの数まであります。使用されている。 ワークアウトの例 これは、グレースフルグラフと思われる単純なグラフです。 次のラベルを試してみましょう。 ノードのラベル付けで整数をスキップすることが許可されていることに注意してください。次に、すべてのエッジに、接続するノード間の正の差でラベルを付けます。見やすくするために、これらを赤でラベル付けしました。 各エッジには一意の番号があり、1〜7(エッジの数)の数字は省略されません。したがって、私たちのグラフは優雅です。 仕事 適切な入力方法でグラフが与えられた場合、それが適切な場合は真の値を出力し、それ以外の場合は偽の値を出力します。 これはコードゴルフなので、目的はバイト数を最小限に抑えることです。 テストケース ここでは、グラフはエッジの配列として表されます。 3 nodes: [(0,1),(0,2),(1,2)] True Labeling: Node 0 -> 0 Node 1 -> 2 Node 2 -> 3 5 nodes: [(0,1),(0,4),(1,2),(2,3),(3,4)] False 5 nodes: [(0,1),(1,2),(2,3),(3,4)] True Labeling: Node 0 -> 0 Node 1 -> 1 Node 2 -> 3 …

2
基数ツリーの高さを計算する
前書き 基数ツリー、圧縮トライまたは圧縮プレフィックスツリーとして知られているが、文字列の集合を記憶するツリー状のデータ構造です。ツリーのエッジは空でない文字列でラベル付けされ、各ノードは終端または非終端です。ツリーに含まれる文字列は、ルートからターミナルノードまでのすべてのパスのラベルです。ツリーは、次の条件で定義される通常の形式である必要があります。 すべての非終端非ルートノードには、少なくとも2つの子があります。 すべてのノードで、すべての発信エッジの最初の文字が異なります。 たとえば、次のセットは非終端ノードと終端ノード["test", "testing", "tested", "team", "teams", "technical", "sick", "silly"]を(N)表す基数ツリーです(T)。 -(N)-te-(N)-st-(T)-ing-(T) | | | | | +-ed-(T) | | | +-am-(T)-s-(T) | | | +-chnical-(T) | +-si-(N)-ck-(T) | +-lly-(T) この課題では、入力として文字列を指定して、木の高さを計算します。 入力 入力は、小文字のASCII文字列の空でないリストです。重複は含まれませんが、どのような順序でもかまいません。空の文字列が含まれる場合があります。入力は適切な形式で取得できます。 出力 出力は、対応する基数ツリー内の最長のルートからリーフへのパスの長さで、含まれるノードの数で測定されます。 上記の例では、パスに対応する正しい出力は4です。 (N)-te-(N)-st-(T)-ing-(T) (N)-te-(N)-st-(T)-ed-(T) (N)-te-(N)-am-(T)-s-(T) 4つのノードを含みます。 さらなる例 基数ツリーの例をいくつか示します。 [""] -(T) ["","fuller"] -(T)-fuller-(T) ["","full","fuller"] -(T)-full-(T)-er-(T) ["full","fuller"] …

4
航空機マーシャリングスクール
一連の航空機マーシャリング手信号を表す文字列が与えられた場合、これらの信号に続く航空機の最終位置を計算する関数またはプログラムを記述します。 NB:この挑戦で座標がデカルト座標の対、プラスコンパス方向見出しとして表される:x座標され、y座標であり、のいずれかである、、、または。(x, y, h)xyhNESW (0, 0, N)エンジンをオフにして、架空のグリッド上にある航空機から始めます。入力は、コンマ区切りの文字のペアを含む文字列で、各ペアは1つのマーシャリング信号を表します。順番に各マーシャリング信号を追跡し(x, y, h)、航空機の最終位置の形式で座標を出力する必要があります。 信号が航空機の移動を必要とする場合、航空機が受信するそのタイプの信号ごとに必要な方向に1ユニット移動すると想定します。信号が航空機に方向転換を要求する場合、受信するそのタイプの信号ごとに必要な方向に90度回転すると仮定します。 エンジンがオフの場合、航空機は移動できません。航空機のエンジンがオフで動き/方向指示器を受け取った場合は、動き/方向転換を行わないでください。 信号 各マーシャリング信号は、1組の文字で表されます。ペアの1つ目は、航空機の視点からのマーシャラーの左腕の位置を表し、2つ目は同じPOVからの右腕の位置を表します。この便利なシグナルのチャートが役立つかもしれません。 o/ — START ENGINES (no movement, no turn) -/ — CUT ENGINES (no movement, no turn) -~ — TURN LEFT (no movement, left turn) ~- — TURN RIGHT (no movement, right turn) ~~ — COME FORWARD (forward …

16
ギリシャの国歌を印刷する
1821年3月25日、ギリシャは大きな独立戦争を戦った。これを尊重するために、あなたの仕事はギリシャの国歌を印刷することです: Σε γνωρίζω από την κόψη του σπαθιού την τρομερή. Σε γνωρίζω από την όψη που με βιά μετράει τη γη. Απ' τα κόκκαλα βγαλμένη, των Ελλήνων τα ιερά! Και σαν πρώτα ανδρειωμένη, χαίρε ω χαίρε Λευτεριά! Και σαν πρώτα ανδρειωμένη, χαίρε ω χαίρε Λευτεριά! Και σαν πρώτα ανδρειωμένη, χαίρε …

3
実行可能な最小のMach-O実行可能ファイル
x86_64で実行可能な最小の実行可能なMach-O実行可能ファイルは何ですか?プログラムは何もできません(戻りコードを返すことさえできません)が、有効な実行可能ファイルでなければなりません(エラーなしで実行する必要があります)。 私の試み: GNUアセンブラー(null.s): .text .globl _main _main: retq コンパイルとリンク: as -o null.o null.s ld -e _main -macosx_version_min 10.12 -o null null.o -lSystem サイズ:4248バイト 16進数の値を見ると、おそらく削除できるゼロパディングがたくさんあるようですが、方法はわかりません。また、libSystemをリンクせずにexectubaleを実行できるかどうかもわかりません...

9
8675309までのn番目ごとの素数
混乱している場合は、こちらをお読みください。 チャレンジ: このコードゴルフの目標は、数に基づいてい8675309ます... 目標は、2から8675309までのすべての素数を出力し、2から開始して、8つの素数をスキップし、6をスキップし、7をスキップすることです。基本的に、次のシーケンス8675309。9に達したら8に循環します。 出力: 2 29 (8番目をスキップして10番目のプライムに到達) 59 (6番目をスキップして17番目のプライムに到達) 97 (7をスキップして25番目のプライムに到達) 例:(PHPのような疑似コードで、$primeはすべての素数を含む配列です。) $tn=1; $c=1; $na=array(8,6,7,5,3,0,9); l: output($prime[$tn]); if ($prime[$tn]>=8675309) {exit(8675309)}; $c+=1; if ($c>=8) {$c=1}; $tn+=$na[$c]; goto l; スキップと言うとき 8つの素数を、私は#1素数から#10素数に移動することを意味します(間にある8をスキップします)。 各番号は改行する必要があります。 0in 8675309に到達したら、何もスキップせずに次の素数を出力するだけです。 これはコードゴルフなので、最短のコード(バイト単位)が優先されます。

2
長方形が長方形のスペースを隙間や重なりなしに埋めているかどうかを確認します
この課題は、別の同様の課題に基づいています。長方形の最も効率的なパッキングを見つけることはNP困難であるため(つまり、その解決策は簡単に確認できるが見つけにくい)、この課題はここでの課題よりもはるかに簡単です。 この挑戦 長方形の束が与えられた場合、それらが長方形のスペースをギャップやオーバーラップなしで埋めるかどうかを把握します。 入力 入力には2つの形式があり、1つはスコアリングペナルティを伴います。 1つ目は、長さが4のサブリストのリストです。このリストには、反対の頂点の座標である4つの整数が含まれています。すべての長方形は水平/垂直になるため、長方形がどこにあるかについてのあいまいさはありません。各サブリストには、最初の頂点のx座標、最初の頂点のy座標、2番目の頂点のx座標、2番目の頂点のy座標の順に、4つの整数が含まれます。 2番目:同じ長さの整数の4つのリストが含まれます。4つのリストは異なる座標を表します。入力オプション1を行列と考えると、ここでの入力は行列の転置にすぎません。この入力には、+20%バイトのペナルティがあります。 出力 単純な真実/偽の出力。 仕様書 エリア0(つまりx1 == x2 || y1 == y2)の長方形がある場合は、この長方形を無視してください(そのため[0 0 1 1], [2 2 3 2]有効です)。この仕様は、人々が最小/最大x / y値を簡単に取得することを困難にするために用意されています。 x1 <= x2y1 <= y2常に正しいとは限りません。の場合x1 > x2 || y1 > y2、長方形は面積ゼロの長方形ではありません。むしろ、それは間の長方形の空間を占有(x1, y1)して(x2, y2)。 座標は負の値でもかまいませんが、その場合でも座標間のスペースを占めます。 左上の長方形は常にとは限りません(0, 0)。したがって、塗りつぶされる長方形のスペースの左上隅がであるとは限りません(0, 0)。 (これらのあいまいさを指摘してくれた@xnorに感謝) 入力方法と出力の表現方法を指定してください。 得点 スコアは、バイト単位のコードのサイズに、該当する場合はバイトのペナルティを加えたものです。12月15日の時点での最低スコアが勝利します。 テストケース 0 0 …

10
プログラムを順次にしてください![閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 あなたがそれを受け入れることを選択した場合、あなたの仕事は簡単です。 目的 実行時に、選択したシーケンスでいくつかの(必要なだけ)用語を出力するプログラムを作成する必要があります。シーケンスは有効なOEISシーケンスである必要があります。ツイストは、シーケンスを構成するコードから文字を取り出し、それらを文字列化し、同じ言語で実行すると、シーケンスのn 番目の式を取得する必要があるということです。 例 私がこのプログラムを作ったとしましょう: abcdefghij 正方形のシーケンスを選択しました:http : //oeis.org/A000290 シーケンスの最初の5項を出力するように選択した場合、出力は次のようになります。 1, 4, 9, 16, 25 注:出力は柔軟です。用語を区切るデリミタを選択できますが、シーケンスの各用語を区別できるように、デリミタが目立つ必要があります。 これで、インデックス1の文字はになりaます。インデックス4の文字はdです。インデックス9の文字はiです。だから私の新しいプログラムは: adi そして、それは私のシーケンスのn 番目の項の式を印刷する必要があります、それは: n^2 シンプル! 他のもの 少なくとも5つの用語を印刷する必要があります。 0または1のインデックスを選択できます。 繰り返される数字は、繰り返される文字を意味します。 シーケンスが順不同(たとえば、逆方向)の場合でも、コードはそれに従います(たとえば、コードが逆方向に書かれています)。 すでに範囲外になっている場合でも、回答の範囲内の数値を使用する必要があります。印刷しなかった同じシーケンスからの番号は使用できません。 シーケンスに公式がない場合は、OEIS Webサイトに記載されている名前の最初の3文字を使用できます(たとえば、フィボナッチシーケンスが印刷さfibれ、ルーカスレーマーシーケンスが印刷されますluc)。 これがcode-golfであることを覚えておいてください。したがって、バイト単位の最短の回答が優先されます。

4
各列が1つのTrueになる行を見つけます(以前はKnuthのアルゴリズムX)。
仕事 ブール行列を指定して、各列にTrueが1つだけある行の1つ(またはオプションで複数)のサブセットを見つけます。任意のアルゴリズムを使用できますが、前の例のように非常に大きな行列をサポートする必要があります。 可能なアルゴリズムの1つ(KnuthのアルゴリズムX) このアルゴリズムを使用する必要はありませんが、これが最善のオプションになる場合があります。 行列Aに列がない場合、現在の部分解は有効な解です。正常に終了します。 それ以外の場合は、列cを選択します。 A r、c = 1となるような行rを選択します。 行rを部分解に含めます。 各列のためのJようにAのR、J = 1、 行ごとにIようにA 、I、J = 1、 削除行I行列からA。行列Aから 列jを削除します。 削減された行列Aに対してこのアルゴリズムを再帰的に繰り返します。 *ステップ3は非決定的であり、後でステップ3を呼び出して行を見つけられなかった場合に、バックトラックする必要があります。 入力 最小の2×2行列Aの任意の表現、たとえば数値またはブール配列 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 …

7
一言で個性を出そう!
大好き/usr/share/dict/wordsです。とても便利です!できる限り、すべてのプログラムで使用します。単語の個性をテストすることで、この非常に便利なファイルを利用することができます。 入力 単語; このチャレンジで任意の文字列として定義されています /usr/share/dict/wordsあるフォーマットで; ハードコーディングし、ディスクから読み取り、2番目の引数として想定することができます。 出力 言葉の個性(下記参照) 単語の個性は次の方程式から導出されます。 <the number of words for which it is a substring> / <length of the word> 例を見てみましょう: hello。(helloの長さ)でhello割った部分文字列を含む12の単語があり5、helloの個性は12/5または2.4 PSこれはcodegolfであるため、個性スコアが低いほど、より個性的です 個性は長い言葉なので、プログラムはできるだけ短くする必要があります 幸運を! テストケース この便利なNode.jsスクリプトを使用できます。これは、コードに適合するためのチャレンジ要件に適合します。また、テストケースの生成方法も示します。 var fs = require("fs"); var word = process.argv[2]; process.stdout.write("Reading file...") fs.readFile("/usr/share/dict/words", function(err, contents) { console.log("Done") if (err) throw err; …

30
無限の非定期的な出力を生成する最短のコード
これはだめだ。この質問は、永久にカウントアップすることを具体的に要求しますが、この質問は他の多くのアプローチを可能にします。 無限の時間とメモリを与えられ、無限の非周期的な出力を出力するプログラムまたは関数を記述します。 明確化 「無限」とは、ソリューションが、プログラムまたは関数を正常に開始した後、それ以上の入力や操作なしで何かを出力し続けることを意味します。 「非周期的」とは、出力が最終的に同じセクションを永久に繰り返す可能性がないことを意味します(その期間の長さに関係なく)。有効な解決策の例は、無理数の数字を印刷することです。 ランダムソリューションは、要件に適合していることを証明できない限り、カウントされません。日付/時刻ベースのソリューションは、任意の精度で格納されていない場合も無効になる可能性があります。 勝者 最短コード(バイト単位)が優先されます。
8 code-golf 

16
2つの配列に同じ要素が含まれているかどうかを確認する
入力2の整数配列を受け取り、両方の配列に存在する要素が存在する場合は真の値を返し、そうでない場合は偽の要素を返すプログラムを記述します。この問題の明らかな解決策は、最初の配列の各要素を反復処理し、2番目の配列の各要素と比較することですが、ここで問題があります。プログラムには、最悪の場合、O( NlogN)、Nはより長い配列の長さ、 テストケース: {1,2,3,4,-5},{5,7,6,8} -> false {},{0} -> false {},{} -> false {1,2},{3,3} -> false {3,2,1},{-4,3,5,6} -> true {2,3},{2,2} -> true これはcode-golfなので、バイト単位の最も短いコードが優先されます。

11
多次元のバイナリシーケンスの順序付きリスト
正の整数を指定すると、次の正確な順序でソートされた長さのバイナリシーケンスをn出力します。2^nn テストケース: 0: 0 or 1 (defining this is a matter of debate) 1: 0 1 2: 00 01 10 11 3: 000 001 010 100 011 101 110 111 4: 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 等 さらに、組み合わせのパターンはパスカルの三角形に関連しています。 0: …

14
クインアナグラム!(強盗のスレッド)
これは強盗のスレッドです。警官のスレッドについては、ここをクリックしてください。 警官の任務 警官のスレッドについては、ここをクリックしてください。 強盗のタスク 警官のスレッドでひびの入っていない提出物を見つけます。(提出物は一度だけ解読できます。) コードを解読して、動作するクインを見つけます。 強盗のスレッドに回答を投稿します。言語、バイト数、スクランブルコードを投稿したユーザー、その回答へのリンク、およびスクランブルされていないコードを含めます。 強盗の提出例を以下に示します。 Python、29バイト、Oliver _='_=%r;print _%%_';print _%_ 得点 クラックが最も多いユーザーがこのセクションの勝者になります。

6
Emotinomiconでのゴルフのヒント
Emotinomiconでゴルフをするための一般的なヒントはありますか?私は、コードゴルフの問題全般に適用できる、少なくともある程度エモティノミコンに固有のアイデアを探しています(たとえば、「コメントの削除」は回答ではありません)。 回答ごとに1つのヒントを投稿してください。
8 code-golf  tips 

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