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

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

5
トポロジーソートの総数
特定のDAG(有向非巡回グラフ)の場合、そのトポロジーの並べ替えはすべての頂点の順列であり、DAGのすべてのエッジ(u、v)について、uは順列のvの前に表示されます。 あなたのタスクは、特定のDAGのトポロジカルソートの総数を計算することです。 ルール エンコーディングで有用な計算を行わない限り、隣接行列、隣接リスト、エッジリストなど、任意の形式を使用してグラフを表すことができます。有用な場合は、入力に頂点数や頂点リストなどを含めることもできます。 入力のグラフは常にDAGであると想定できます(サイクルはありません)。 あなたのプログラムは理論的にはどんな入力に対しても機能するはずです。ただし、言語の基本的な整数型をオーバーフローすると失敗する可能性があります。 頂点の名前は、任意のタイプの任意の連続した値にすることができます。例:0または1から始まる数値(もちろん、この数値にコードを格納していない場合のみ)。 これはコードゴルフです。最短のコードが勝ちます。 例 これは、異なる形式の同じ入力です。プログラムはそれらすべてを受け入れる必要はありません。頂点は常に0から始まる整数です。 Adjacency list: [ [1 2 3 5] [2 4] [] [2] [] [3] ] Adjacency matrix: [ [0 1 1 1 0 1] [0 0 1 0 1 0] [0 0 0 0 0 0] [0 0 1 0 0 …

4
Pigpen Cipher暗号化
Pigpen Cipher暗号化 あなたの使命は簡単です。入力としてテキストを受け取り、そのテキストのASCII表現をPigpen Cipherに出力するプログラムを書くことです。 入力 ASCIIのみ(Unicodeなし)の文字。少なくとも16384文字と256行を処理できる必要があります。 出力 改行ではないすべての文字を、スペースで、ABCDEFGHIJKLMNOPQRSTUVWXYZまたはabcdefghijklmnopqrstuvwxyzスペースで置き換えます。 大文字と小文字を区別せずに、各文字を暗号化された形式に置き換え(次のセクションを参照)、3行それぞれに末尾のスペースを挿入します。エンコードされた各文字は、ASCIIアートの3 * 3ブロックです。スペースを3 * 3ブロックのスペースに置き換えます。 新しいピッペンラインを開始する新しいラインがない限り、すべてのキャラクターは同じ3行にある必要があります(これらの3行を1つのピッペンラインと呼びます)。ピッペンラインの間の通常のラインは空白のままにします。 暗号 | | | | .| |.| |. --+ for J +-+ for K +-- for L --+ +-+ +-- .| |.| |. --+ for M +-+ for N +-- for O --+ +-+ +-- .| …

3
クレム通訳を書く
Clemは、ファーストクラスの機能を備えた最小のスタックベースのプログラミング言語です。あなたの目的はクレム言語のインタプリタを書くことです。ここにあるリファレンス実装に含まれるすべての例を適切に実行する必要があります。 いつものように、標準の抜け穴が適用されます。 バイトカウントによる最小のエントリが優先されます。 クレム語 Clemは、ファーストクラスの機能を備えたスタックベースのプログラミング言語です。クレムを学ぶ最良の方法はclem、引数なしでインタプリタを実行することです。インタラクティブモードで起動し、使用可能なコマンドで遊ぶことができます。サンプルプログラムを実行するには、「example」がプログラムclem example.clmの名前であると入力します。この簡単なチュートリアルは、始めるのに十分なはずです。 関数には2つの主要なクラスがあります。原子関数と複合関数。複合関数は、他の複合関数とアトミック関数で構成されるリストです。複合関数にそれ自体を含めることはできません。 原子関数 アトミック関数の最初のタイプは定数です。定数は、単に整数値です。たとえば、-10。インタープリターが定数を検出すると、それをスタックにプッシュします。clem今すぐ実行します。入力-10プロンプトで。君は見るべきだ > -10 001: (-10) > 値001はスタック内の関数の位置を表し、入力し(-10) た定数です。+11プロンプトで入力してください。君は見るべきだ > +11 002: (-10) 001: (11) > (-10)がスタックの2番目の位置に移動し(11)、最初の位置を占めていることに注意してください。これがスタックの性質です!これが-減分コマンドでもあることに気づくでしょう。たび-または+番号の前に、彼らはその数ではなく、対応するコマンドの兆候を示しています。他のすべてのアトミック関数はコマンドです。合計14あります。 @ Rotate the top three functions on the stack # Pop the function on top of the stack and push it twice $ Swap the top …

5
ポーカーハンドに名前を付ける-7カードエディション
チャレンジ: この質問では:5カードのポーカーハンドを取り、それを識別する必要があるポーカーハンドに名前を付けます。この質問は似ていますが、2つの工夫があります。 まず、出力はすべて小文字になります。flushとの大文字の使用について心配する必要がないので、これはより多くのゴ​​ルフを可能にしますstraight high card one pair two pair three of a kind straight flush full house four of a kind straight flush royal flush 次に、テキサスホールデムと7枚のカードスタッドの人気により、ここコードゴルフでは、7枚のカードポーカーハンドを獲得できるはずです。7枚のカードの手にスコアを付けるときは、手札に最高の5枚のカードを使用し、不要な2枚は無視してください。 参照: ポーカーハンドのリスト:http : //en.wikipedia.org/wiki/List_of_poker_hands 入力(前のスレッドから直接持ち上げられた) stdinまたはコマンドライン引数からの7 枚のカード。カードは、フォーム上の2文字の文字列で、RSRはランク、Sはスーツです。ランクはある2- 9(番号カード)、T(10)、 J(ジャック)、(Q女王)、 K(王)、 A(エース)。スーツがありS、D、H、Cそれぞれスペード、ダイヤ、ハート、クラブのために。 カードの例 5H - five of hearts TS - ten of spades AD - …
11 code-golf  game 

18
デッドロックを引き起こす最短コード
デッドロックを作成する最短のコードを記述します。コードの実行を停止する必要があるため、これは機能しません。 public class DeadlockFail extends Thread{ //Java code public static void main(String[]a){ Thread t = new DeadlockFail(); t.start(); t.join(); } //this part is an infinite loop; continues running the loop. public void run(){while(true){}} } ほぼ確実に、コードがデッドロックになることを確認する必要はありません(無限に実行するとデッドロックになります)。

6
有理数関数
自然数(0から始まる)を取り、それぞれ分子と分母である正の整数のペアを返す関数を作成します。斜めトラバーサルを使用します。以前にカウントされた数値はスキップする必要があります。(スキップした値のセットを記憶できます) 図: 赤はスキップされた値です 値: f(0)= 1、1 f(1)= 2、1 f(2)= 1、2 f(3)= 1、3 f(4)= 3、1(スキップに注意) f(5)= 4、1 f(6)= 3、2 f(7)= 2、3 f(8)= 1、4 f(9)= 1、5 f(10)= 5、1(スキップに注意) Rationalデータ構造とその操作が存在する場合は、それらを使用できます。最短のコードが勝ちます。

7
シャミールの秘密共有の再構築を実装する
シャミールの秘密共有方式は、秘密を再構築するために必要ないくつかの部分に分割することによって秘密を保護する簡単な方法です。 あなたの仕事は、首相によって定義された有限体上のシャミルの秘密共有再構築を実装すること1928049029です。これが何を意味するかについて疑問がある場合は、質問するか、Wikipediaの有限体と有限体演算を参照してください(以下のリソースを参照)。 入力 入力はstdinを使用して行われます。最初に整数k、次にk行続きます。これらの各行にはx y、秘密を表す整数のペアが含まれています。言い換えればf(x) = y、秘密を構築するために使用された元の多項式で。 指定されたシークレットの数は、対応するシークレットを構築するのに常に十分です。 出力 再構築されたシークレットをstdoutに出力します。 例 入力: 5 1 564797566 2 804114535 4 1354242660 6 1818201132 7 503769263 出力: 1234 入力: 7 1 819016192 2 1888749673 3 1737609270 4 365594983 5 1628804870 6 1671140873 7 492602992 出力: 456457856 資源 ウィキペディアの記事 論文 有限体出典:ウィキペディア 有限体演算出典:ウィキペディア ラグランジュ多項式出典:ウィキペディア 有限体演算に関する章

14
1か月の稼働日の割合
年と月を考えて、その月の就業日の割合を調べます。稼働日は、月曜日から金曜日で、休日やその他の特別なことは考慮されません。グレゴリオ暦が使用されます。 入力 ISO 8601形式の年と月(YYYY-MM)。年は常に4桁、月は常に2桁です。指定された年は1582年より前ではありません。 出力 出力は、整数に丸められた、指定された月の就業日(上記の定義による)のパーセンテージです。パーセント記号や小数桁は続きません。 サンプル1 Input Output 2010-05 68 サンプル2 Input Output 2010-06 73 サンプル3 Input Output 1920-10 68 サンプル4 Input Output 2817-12 68 1週間が経過し、回答が受け入れられました。好奇心旺盛な方のために、コンテストで私たちが受け取った提出物のサイズ: 129 – Zシェル 174 – VB.NET 222 – C 233 – C 300 – C 独自の(ランク付けされていない)ソリューションと同様に: 75 – PowerShell 93 – Ruby 112 …
11 code-golf  date 

6
本当に大きい数は大きいですか?
この質問は、より難しいパズルが好きな人にとって、トリッキーです(特に、「大きい数は大きいですか?」より難しいです)。 入力 整数a1、a2、a3、a4、a5、b1、b2、b3、b4、b5の範囲はそれぞれ1〜10です。 出力 True if a1^(a2^(a3^(a4^a5))) > b1^(b2^(b3^(b4^b5))) and False otherwise. ^はこの質問での累乗です。 ルール これはコードゴルフです。TIOでの有効な入力に対して、コードは10秒以内に正しく終了する必要があります。言語がTIOにない場合、コードはマシン上で10秒未満で終了するはずです。 Trueの場合はTruthy、Falseの場合はFalseyを出力できます。 テストケース 指数の規則により、a1 ^(a2 ^(a3 ^(a4 ^ a5)))== a1 ^ a2 ^ a3 ^ a4 ^ a5であることを思い出してください。 10^10^10^10^10 > 10^10^10^10^9 1^2^3^4^5 < 5^4^3^2^1 2^2^2^2^3 > 10^4^3^2^2 6^7^8^9^10 is not bigger than 6^7^8^9^10 10^6^4^2^2 < 10^6^2^4^2 …

30
First-nフィボナッチ数列要素
ここには、短い(最小の文字)フィボナッチシーケンスジェネレーターを要求するよく知られた質問があります。 誰かがフィボナッチ数列の最初のN個の要素のみを非常に短いスペースで生成できるかどうか知りたいのですが。私はそれをpythonでやろうとしていますが、どんな言語でも、どんな短い答えにも興味があります。関数F(N)は、シーケンスの最初のN個の要素を生成し、関数の戻りとしてそれらを返すか、出力します。 興味深いことに、コードゴルフの回答は1 1 2でなくで始まるようです0 1 1 2。それはコードゴルフや一般的なプログラミングの慣習ですか?(ウィキペディアによると、フィボナッチ数列はゼロから始まります。) Pythonサンプル(最初の5要素): def f(i,j,n): if n>0: print i; f(j,i+j,n-1) f(1,1,5)

7
奇妙な秘密の力を持つ配列の戦い
これは、比較的単純な2次元配列の課題です。 625人の歩兵の戦場を想像してみてください。あなたはコマンド奇妙な軍隊を、残念ながらの強さも、軍があなたを圧倒する。ありがたいことに、あなたの兵士には秘密の力があります:奇妙な各部隊とそれらを取り巻く仲間の奇妙な同盟国の力が秘密の力の数で割り切れる場合、彼らは最終的な攻撃を解き放ち、勝ちます!あなたは勝利した兵士一人一人を尊敬しなければなりません。 ルール 各要素がそのxとyの位置に1を加えた積を含む25 x 25の整数配列を指定すると、次の基準を満たすすべての「勝利の」奇数要素の座標を返します。 要素の値とそれに隣接する奇数要素(上、下、左、右)の合計は、入力(シークレットパワー番号)で割り切れます。要素は4つの辺すべてに隣接していて、エッジ上にはない必要があります。 提出は、単一の入力を必要とする関数または完全なプログラムのいずれかです。出力は任意の順序にすることができます。 25 x 25の配列、戦場は次のようになります。 1, 1, 1, 1,... 1, 2, 3, 4,... 1, 3, 5, 7,... 1, 4, 7, 10,... etc. 例 以下は3 x 3の例です。 43, 57, 71 46, 61, 76 49, 65, 81 要素(中央の61)が勝るかどうかを判断するには、その要素と隣接する奇数要素の値を合計します。 61 + 57 + 65 = 183 合計が入力で割り切れる場合、要素のxとyの位置が出力されます。入力が3の場合、183は3で割り切れるため、「1、1」が出力されます。 …

2
シェルグロブゴルフ
このタスクは、グロブ拡張後にファイルへの最短パスを出力することです。 シェルグロビングとは何ですか?ほとんどのシェルで*は、パス内の文字を使用して、その位置にある任意の文字を表すことができます。たとえば、ディレクトリfooにファイルbar bazとが含まれている場合asdf、foo/b*に展開されfoo/bar foo/bazます。 ここで、現在のディレクトリにというファイルだけが含まれているとしましょうihavealongname。このファイルを参照する場合は*、完全な名前を入力するのではなく、と入力します。これは、その1つのファイルのみを表します。 ディレクトリにというファイルも含まれている場合、両方のファイルに一致するialsohavealongnameため*、実行できません。私は少なくともしなければならないでしょうih*。 この*パターンは、探しているファイルの上のディレクトリに一致する場合にも機能します。そこに2つだけのディレクトリがある場合fooとbarが、fooファイルのみが含まれているbazとbar、ファイルが含まれているasdf、私は一致させることができますfoo/bazし*/baz。それとも、もっと簡潔に、*/b*。場合はbar空だった、*/*働くだろう。 あなたのタスク:「現在のディレクトリ」を表すパスの文字列配列と単一のターゲットパスを指定して、* sを展開した後、そのターゲットパスのみに展開される最短の文字列を出力します。 ターゲットパスは、それ自体の文字列として、パスの配列へのインデックスとして、渡されたパスの配列の最初の項目として、またはハードコーディングされていない他の便利な方法として取得できます。わからない場合はコメント欄で尋ねてください。 ターゲットパスは、「現在のディレクトリ」に存在することが保証されています。 すべてのパスに英数字のASCII(および/s)のみが含まれていると想定できます。入力パスとして、ルート(で始まる/)または相対(で始めない)を取ることができます/。 等しく短い可能性が複数ある場合は、それらのいずれかまたはすべてを返します。 これはコードゴルフで、最少バイトが勝ちます! Kevin Cruijssenのおかげで、テストケース。

9
この日付形式は何ですか?
グレゴリオ暦の場合、日付の形式は国によって異なります。認識される3つの主要な形式があります。 YY-MM-DD (ビッグエンディアン) DD-MM-YY (リトルエンディアン) MM-DD-YY (ミドルエンディアン) あなたの仕事は、日付を表す入力文字列を与えられ、この文字列を日付として解釈できるすべての可能な日付形式を出力するプログラムを書くことです。 ルール 入力日付の形式xx-xx-xxはで、各フィールドは2桁でゼロが埋め込まれます。 日付は常に有効です(14-13-17のようなものは取得できません) 日付は常に上記の形式の少なくとも1つです(したがって、17-14-11のようなものは取得できません) 私たちは実際にはパラレルワールドにいるため、1年の各月には31日あり、その結果、うるう年はありません 日付は2001年1月1日から2099年12月31日の間 日付の形式が1つしかない場合、コードはそれだけを印刷する必要があります(末尾の改行のみが許可されます)。 日付の形式が複数ある場合は、コンマ、スペース、改行、またはそれらの組み合わせで区切る必要があります 形式の正確な名前を出力する必要があります。異なる任意の値を使用することはできません。 末尾のスペース以外の先頭または末尾の文字は使用できません 出力は小文字でなければなりません 組み込みの日付またはカレンダー関数の使用は許可されていません 出力フォーマットをソートする必要はありません 例 Input Output 30-05-17 big-endian, little-endian 05-15-11 middle-endian 99-01-02 big-endian 12-11-31 big-endian, little-endian, middle-endian 02-31-33 middle-endian これはコードゴルフなので、バイト単位の最短コードが優先されます。説明が奨励されます。
11 code-golf  date 

4
自慢の手に名前を付ける
バックグラウンド Bragは、ポーカーと概念は似ていますが、ポーカーよりも単純なカードゲームです。自慢の手は3枚のカードで構成され、最高から最低まで次のようにランク付けされます。 3種類のカード-3つのカードはすべて同じランクです。「三人の王」などと名付けられた フラッシュ、別名ストレートフラッシュを実行しています。同じスーツと連続したランクの3枚のカードすべて。ハンドは3枚のカードの昇順で名前が付けられており、単純なラン/ストレートと区別するために「on the bounce」という単語が続きます。エースは高いか低いかのどちらかであり、両方ではないことに注意してください-「king-ace-two」はランではありません。 まっすぐ走る。上記と同じですが、スーツを合わせる必要はありません。単に「ten-jack-queen」などの名前が付けられます。 フラッシュ-3枚のカードすべてが同じスーツで、最高ランクにちなんで名付けられました(例:「エースフラッシュ」)。 ペア-同じランクの2枚のカードと別のバージョンのランクの3枚目。「スリーペア」などと呼ばれる 「ace high」など、最高ランクにちなんで名付けられた他の組み合わせ。 チャレンジ トランプが3枚ある場合、それらが出力する自慢の手の名前を出力します。 カードは、3つの2文字の文字列として入力されるか、1つの6文字の文字列として連結されます(実装によってはどちらでもかまいません)。各ペアの最初はランクです(2 ... 9、T、J、Q、 K、A)、2番目はスーツ(H、C、D、S)を意味します。 標準のゴルフ規則が適用されます-上記のように、この入力を受け入れ、手の名前を出力するプログラムまたは関数を記述します。 入力は有効(上記の範囲のランクとスート、カードの繰り返しなし)であり、どのような場合でも、特定の順序ではないと想定できます。 出力は、すべて大文字、すべて小文字、またはタイトルの大文字小文字や文の大文字小文字など、意味のある大文字にする必要があります。数値ランクは、たとえば10ではなく「10」のように表記する必要があります。 入力と出力の例: 2H3C2D => "pair of twos" TD8C9C => "eight-nine-ten" 4SKS9S => "king flush" 4D4H4S => "three fours" 5H3H2C => "five high" 2D3DAD => "ace-two-three on the bounce" 6D6C6H => "three …

8
揮発性を解釈する
揮発性を解釈する Volatileは、A_ / a '_' / Aによって作成されたスタックベースのesolangであり、8つの命令しかなく、完全に処理しています。ただし、これは非決定的でもあります。つまり、プログラムが常に同じ出力を与えるわけではありません。あなたの仕事はこの言語を解釈することです。 言語仕様 esolangsページから取得: ~: Push a random integer in any range of integers. Minimum range of 0 through 32768 +: Pop 2 values and push the sum of the 2 values -: Like +, but subtracts *: Multiply /: Divide. 0-division will result in …

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