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

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

6
2D配列をASCIIテーブルとして表示
タスクは、指定された配列のASCIIテーブルを表示することです。 入力 入力は2Dマトリックスです。行列の行の長さは配列の長さと同じです。あるいは、最初の行がヘッダーである2Dマトリックスの入力を取ることができます。外側の次元は行です。 入力例: [["License","2008-05-08","2009-03-11","2011-11-22","2013-08-12","2015-11-19"],["GPLv2","58.69%","52.2%","42.5%","33%","23%"],["GPLv3","1.64%","4.15%","6.5%","12%","9%"],["LGPL 2.1","11.39%","9.84%","?","6%","5%"],["LGPL 3.0","? (<0.64%)","0.37%","?","3%","2%"],["GPL family together","71.72% (+ <0.64%)","66.56%","?","54%","39%"]] 出力 テーブルの出力は次のようになります。 +---------------------+-------------------+------------+------------+------------+------------+ | License | 2008-05-08 | 2009-03-11 | 2011-11-22 | 2013-08-12 | 2015-11-19 | +---------------------+-------------------+------------+------------+------------+------------+ | GPLv2 | 58.69% | 52.2% | 42.5% | 33% | 23% | | GPLv3 | 1.64% | 4.15% | 6.5% …

13
パリンドローム素因数
回文の素数の問題はかなり一般的ですが、それはこの質問の目的ではありません。この挑戦では、数は回文である必要はありません、その主な要因はそうです。 仕事 コードは、入力として単一の正の整数を取る必要があります。次に、その整数の素因数の順列のいずれかが連結時に回文的であるかどうかを確認します。その場合、それらの1つを出力します(連結された文字列ではなく、因子のリスト)。そうでなければ、出力する必要があります-1。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース 11 -> [11] 4 -> [2, 2] 39 -> [3, 13] 6 -> -1 1207 -> [17, 71] 393 -> -1 2352 -> [2, 2, 7, 3, 7, 2, 2]

5
単語チェーンを再生する
私が若かったとき、私はWord chainと呼ばれる単語ゲームをプレイするために使用します。とても簡単でした。最初のプレイヤーが単語を選択します。次のプレイヤーは、前の単語が終わったのと同じ文字で始まる別の単語を言います。これは誰かがgivesめるまで永遠に続きます!トリックは、同じ単語を2回使用することはできないということです(誰もがその単語を使用することさえ忘れていない限り!)。通常、私たちは特定のトピックをより難しくするために遊びます。しかし、今、私はあなたに私のためにこれをするプログラムを作って欲しいです。 チャレンジ 完全なプログラムまたは関数を作成して、指定された一連の単語と開始単語を使用して、可能な限り長い単語チェーンをすべて検索します。 これはcode-golfなので、最短のコードが優先されます! 入力 入力には、リストと開始語の2つがあります。開始語はリストに含まれません。入力はすべて小文字のASCIIであり、リストには重複する単語は含まれません。 出力 次のようなリストの単語のすべてのシーケンス: 開始ワードは、シーケンスの最初のワードです。 後続の各単語は、前の単語の最後の文字と同じ文字で始まります。 シーケンスの長さは可能な限り最長です。 最長のシーケンスが複数ある場合は、それらすべてを出力します。 シーケンスには、必ずしもすべてのリストワードを含める必要はありません。それが不可能な場合もあります(テストケースを参照)。繰り返しますが、単語を2回使用することはできません! テストケース In: [hello, turtle, eat, cat, people] artistic Out: [artistic, cat, turtle, eat] In: [lemonade, meatball, egg, grape] ham Out: [ham, meatball, lemonade, egg, grape] In: [cat, cute, ewok] attic Out: [attic, cute, ewok] In:[cat, cute, …

1
チェーンルールを実行する
差別化と統合には多くの課題がありましたが、関連する料金の問題を解決することには何もありませんでした。そのため、この課題では、多数の導関数(変数ではなく数値)を取得し、別の導関数を見つける必要があります。 入力は、改行で区切られた方程式のリストになりますdx/dt = 4。小数と負数があります。 入力は、あなたが見つけなければならない一つの微分で終わります。あなたは常にそれを見つけるのに十分な情報があると仮定できますが、過剰な情報もあるかもしれません。 また、逆関数の導関数を考慮する必要がある場合がありdy/dx = 3ますdx/dy = 1/3。たとえば、もしあれば、それも知っています。 出力はの形式になりdy/dt = 6ます。すべての空白などは同じでなければなりません。すべての変数は常に1文字であると想定します(大文字でも、大文字でもかまいませんd)。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース dy/dx = 4 dx/dt = 5 dy/dt answer: dy/dt = 20 dy/dx = -3 dt/dx = 3 dy/dt answer: dy/dt = -1 dA/dt = 4 dA/dC = 2 dC/dr = 6.28 dr/dt answer: dr/dt = …

3
文字列を一意に保ちながら文字を削除する
私の謙虚な意見では、答えが少なすぎるというこの素晴らしい(意見と投票数に基づく)チャレンジに触発されました。 文字列のリストを(何らかの方法で)与えられ、与えられた文字列から削除されたときに、文字列の合計の長さ(残っているもの)を可能な限り小さくしながら、文字列のセットを(何らかの方法で)返します一意の文字列と少なくとも1文字の長さ。 例: 「日」と「日」を指定します。文字「ay」が削除されると、指定された文字列は「D」と「d」になるため、「ay」を返します。 「Hello World!」、「Hello world。」、および「Hello world」を指定します。文字 "Helo Wrd"(スペースを含む)が削除されると、文字列が "!"、 "w。"、および "w"になるため、 "Helo Wrd"が返されます。 「世紀」、「10年」、「年」、「月」、「週」、「日」、「時間」、「分」、および「秒」を指定します。文字「centurdowi」の場合、指定された単語は「y」、「a」、「ya」、「mh」、「k」、「ay」、「h」、「m」、「s」になるため、「centurdowi」 」が削除されます。 返されるセットの順序と形式は重要ではありません。

2
配列をシャッフル解除できますか?
バックグラウンド 非常に熟練したカードハンドラーは、デッキを完全に半分にカットしてから、カードを完全にインターリーブする技術を使用できます。並べ替えられたデッキから始めて、この手法を52回連続して完璧に実行すると、デッキは並べ替えられた順序に復元されます。あなたの挑戦は、カードのデッキに整数配列を取り、ファロシャッフルのみを使用してソートできるかどうかを判断することです。 定義 数学的には、ファロシャッフルは、任意の正の整数nに対する2 n個の要素の順列であり、位置i(1からインデックス付け)の要素を位置2 i(mod 2 n +1)に置き換えます。また、奇数長のリストを処理できるようにしたいので、その場合、リストの最後に1つの要素を追加し(便利な場合はジョーカー)、上記のようにFaroは新しいリストをシャッフルしますが、無視しますリストの順序をチェックするときに追加されたダミー要素。 ゴール 整数のリストを取得し、いくつかのファロシャッフルによりそのリストが非降順でソートされる場合(その数がゼロであっても、小さなリストが真実を示す必要がある場合)、真実を返すか出力するプログラムまたは関数を記述します。それ以外の場合は、偽物を返すか出力します。 例 [1,1,2,3,5,8,13,21] => True [5,1,8,1,13,2,21,3] => True [9,36,5,34,2,10,1] => True [1,0] => True [0] => True [] => True [3,2,1] => True [3,1,2] => False [9,8,7,6,5,4,3,2,1,0] => True [9,8,7,6,5,4,3,2,0,1] => False [3,1,4,1,5,9,2,6,9] => False [-1,-1,-1,-2] => True 得点 これはコードゴルフなので、バイト単位での最短ソースが優先されます。

12
五角形の数字から作られた五角形の数字
前書き 五角数(A000326は)式によって生成されたP N = 0.5×(3N 2 -n) 。または、使用されたドットの量を数えるだけです: 式または上記のgifを使用して、最初のいくつかの五角形の数字を見つけることができます。 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, 176, 210, 247, 287, 330, 376, 425, 477, etc... 次に、x個の連続した数字の合計を計算する必要があります。 たとえば、x = 4の場合、P n + P n + 1 + P n + 2 + P n + 3(4つの用語で構成される)を調べる必要があります。五角形の数の合計も五角形の数である場合、これを五角形の五角形の数と呼びます。 ためX = …

8
正確にnになる合計数の最小数
ここでの最初の質問は、これが重複するのか悪い挑戦なのかを私に怒鳴らないでください。 前書き 私はこの挑戦を自分で考えましたが、初心者のコード愛好家には良い基本的なパズルのようです。また、学習するコードゴルフ言語を決定するのに役立つかもしれません。 チャレンジ 以下の整数の配列が与えられた場合、n正確に合計する配列からの最小数の数値を出力または返しnます。 関数を書くか、完全なプログラムを書くかを選択できます。 入力 あなたは安全に仮定することができ0 <= n < 2^31ます。 任意の種類の配列またはリスト(vectorC ++またはJava LinkedListが許可されている場合)と、配列の長さを指定nするオプションのパラメーターを取りますlength。 入力はn、コンマまたはスペースで区切られたスペースで区切られた文字列として受け取ることもできます。 1 5 7 3 7 3 6 3 2 6 3,10 1 5 7 3 7 3 6 3 2 6 3 10 それが簡単な場合。 出力 出力するか、正確に合計する配列の最小数を返しnます。上記の例を使用します。 1 5 7 3 7 3 6 3 …

11
和のセットを見つける
このサイトを読んで楽しんできました。これが私の最初の質問です。編集は大歓迎です。 正の整数を考えると、NとMのすべての注文のパーティション計算メートルを正確にn個の部品の正の整数部分、およびそれらを印刷には、カンマと改行で区切られました。どの順序でも構いませんが、各パーティションは1回だけ表示される必要があります。 たとえば、m = 6およびn = 2の場合、可能なパーティションは正の整数のペアであり、合計は6になります。 1,5 2,4 3,3 4,2 5,1 [1,5]と[5,1]は異なる順序のパーティションであることに注意してください。出力は正確に上記の形式で、オプションの末尾の改行が必要です。(編集:パーティションの正確な順序は関係ありません)。入力/出力を介している標準コード-ゴルフI / O。 m = 7、n = 3の別の出力例: 1,1,5 1,2,4 2,1,4 1,3,3 2,2,3 3,1,3 1,4,2 2,3,2 3,2,2 4,1,2 1,5,1 2,4,1 3,3,1 4,2,1 5,1,1 1週間後のバイト単位の最小コードが勝ちます。 繰り返しますが、必要に応じて編集してください。 補遺: @TimmyDは、プログラムがサポートする整数入力のサイズを尋ねました。例以外にハードミニマムはありません。実際、出力サイズは指数関数的に増加し、おおよそ次のようにモデル化されます:lines = e ^(0.6282 n-1.8273)。 n | m | lines of output …

7
非同期の囚人のジレンマゲームを記録する
囚人のジレンマエクササイズのラウンドでは、2人のプレイヤーがそれぞれ、そのラウンドに協力するか、または敗走するかを決定します。ラウンドの得点は次のとおりです。 プレーヤーAとプレーヤーBの両方が協力:両方に対して1ポイント プレーヤーAとプレーヤーBの両方の欠陥:両方とも2ポイント プレイヤAの協働とプレイヤB不良:3点プレイヤーAの協働および0点プレイヤーBを逃走するための ただし、戦略について心配する必要はありません。プログラムは単にゲームのスコアを集計するだけです。(あなたがすでに囚人のジレンマに精通している場合、ここでの私の「ポイント」は「刑務所での年」に対応します。) あなたの課題は、数ラウンドにわたるプレイヤーの選択を表す入力を取得し、それぞれの合計スコアを計算することです。一人のプレイヤーの提出小文字での選択肢、cおよびd(のための協力や欠陥)、およびその他の提出の選択肢大文字で、CとD。これらの選択肢は文字列としてプログラムに提供されます。 通常、囚人のジレンマに陥っているプレイヤーは、動きを同時に、繰り返し送信します。ただし、このチャレンジでは、プレーヤーは一度に複数のラウンドの選択肢を提出した可能性があります。プレーヤーの動きが順不同の場合、スコアリングプログラムはそれを記憶し、それを相手プレーヤーから次に利用可能な動きと照合します。 入力文字列のサンプルは次のとおりです。 cDCddDDCcCc この入力に存在する一致を表示するには、小文字と大文字を別々に呼び出して、それらをペアにします。 cDCddDDCcCc c dd c c => cddcc DC DDC C => DCDDCC これらはラウンドにペアリングされます: c vs D (3 pts for lowercase-player, 0 pts for uppercase-player) d vs C (0 pts for lowercase-player, 3 pts for uppercase-player) d vs D (2 pts …
15 code-golf 

20
すでに短い数式を短くする
かつて、私はいくつかの実際の作業を行い、古いコードを更新し、古き良き時代の数学でπx+ e xとして書かれたものと同等の式にぶつかりました。私が使用している言語(APL)で書かれているよりも短く書くことが可能であると思ったため、この非常に簡単な課題を提示します。 (任意の手段によって)は、(任意の手段によって)、ゼロ以上の数字、およびリターンを受け入れることについての上記式の結果を関数またはプログラムを書くX = 所与の数値の各各結果のために少なくとも3桁の有効数字を有します。 言語にπやeがない場合は、値3.142および2.718を使用します。 スコアリングはバイト数であるため、答えの先頭にを付け# LanguageName, 00 bytesます。 標準のループ穴は許可されていません。 編集:今、私が思いついた解決策は、○+*、発見されました。元のコードは(○x)+*xです。
15 code-golf  math  number  pi 

3
時間の管理を手伝ってください
私は最近、新年までに物理教科書全体を読むように言われました(残念ながら実話)。毎日どの章を読むべきかを決めるのにあなたの助けが必要です。ここがあなたの出番です。 入力 任意の形式の2つの日付。2番目の日付は常に最初の日付より後です。 章番号のリスト。このコンマ区切りリストには、単一の章(12)または包括的範囲(1-3)を含めることができます。例 1-3,5,6,10-13。 Monday -> Moスケジュールから除外する曜日のリスト(名前の最初の2文字で表されます)。例 Mo,Tu,Fr。 出力 出力は、改行で区切られた日付と章番号のリストになります(以下の形式を参照)。支部は、指定された平日を除き、範囲内のすべての日に均等に分散する必要があります。チャプターが均等に分配されない場合は、期間の終わりにチャプターの量が少ない日があるようにします。出力の日付は、入力とは異なる形式にすることができます。チャプターがない日は省略できますが、単にチャプターがない場合もあります。 例: 入力: 9/17/2015 9/27/2015 1-15 Tu 出力: 9/17/2015: 1 2 9/18/2015: 3 4 9/19/2015: 5 6 9/20/2015: 7 8 9/21/2015: 9 10 9/23/2015: 11 9/24/2015: 12 9/25/2015: 13 9/26/2015: 14 9/27/2015: 15

3
ハイフネーションを削除します
新しいタイポグラフィの挑戦の時間です!さまざまなドキュメント形式間でコピーアンドペーストするときの一般的な問題:ハイフネーション 左揃えのレイアウトの不揃いや、正当なレイアウトの均等な間隔を減らしますが、PDFが適切に構築されず、レイアウト内にハイフンが保持されると、コピーしたテキストの編集やリフローが難しくなります。 幸いなことに、数え切れないほどのセルフヘルプの本を信じるなら、それを挑戦と見なしても何も問題はありません。これらの自助の本は例外なくPPCGに言及していると思います。PPCGでは、課題として提示された場合に問題が解決されます。あなたの仕事は、テキストから問題のあるハイフネーションと改行を削除して、テキストエディタに貼り付ける準備ができるようにすることです。 問題の説明 必要に応じて、ハイフネーションと改行を削除するプログラムまたは関数を作成します。入力は、上で文字列になりますstdin(または最も近い代替)または関数の入力として。出力(上stdoutまたは一番近い代替または関数の出力)は、テキストを「修正」されます。このテキストは、直接コピーアンドペーストできる必要があります。つまり、先頭または末尾の出力は問題ありませんが、修正されたテキストの途中の追加出力(たとえば、各行の先頭のスペース)はそうではありません。 最も基本的なケースは次のとおりです(注:末尾のスペースはありません) Lorem ipsum dolor sit amet, con- sectetur adipiscing elit. Morbi lacinia nisi sed mauris rhoncus. 問題のハイフンと改行は、取得するために削除する必要があります Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacinia nisi sed mauris rhoncus. ただし、いくつかの例外があります。 二重改行は段落区切りを示し、保持する必要があります。 適切な名詞と名前は、既にハイフンが含まれている場合を除き、2行に分かれることはありません(例:Navier-Stokes方程式)。改行を削除する必要がありますが、ハイフンは保持されます。これらのケースは、最初の文字のみを大文字にすることで識別できます。 場合によっては、ハイフンは単語グループを示します(たとえば、19世紀および20世紀)。これが2行にわたって発生する場合、次の行の先頭スペースで示されます。 例:(この例で表現されている見解は架空のものであり、必ずしも著者の見解を表しているわけではありません。ルンゲクッタフェルバーグ法の反対者もこの課題に参加することを歓迎します) Differential equations can be solved with the Runge-Kutta- Fehlberg …

16
単純なタスクを3回解決
1つの言語で3つのプログラムや関数を作成する必要があります。 これらのプログラムはすべて同じタスクを解決する必要がありますが、すべて異なる(ただし有効な)出力を提供する必要があります。(つまり、プログラムのすべてのペアに対して、異なる(しかし有効な)出力番号のセットを生成する入力が必要です。) タスク n1より大きい整数が与えられます n 別個の正の整数を返すか出力する必要があり、それらのいずれもで割り切れないようにする必要がありますn。 数字の順序は重要ではなく、数字の順列は異なる出力としてカウントされません。 いくつかのinput => outputペアを持つプログラムの有効なトリプレット: program A: 2 => 5 9 4 => 5 6 9 10 5 => 2 4 8 7 1 program B: 2 => 1 11 4 => 6 9 1 2 5 => 4 44 444 4444 44444 program C …

18
化学のクラスに戻る
前書き 化学で最初に学んだことの1つは、アルカンの燃焼式を与えることでした。最も基本的な例は次のとおり2CH4 + 4O2 > 4H2O + 2CO2です。すべての係数を2で除算することにより、方程式を簡略化できたことに注意してください CH4 + 2O2 > 2H2O + CO2。物事を簡単にするために、このステップを無視します。 アルカンを燃焼させると、酸素が使用されることがわかります。反応後、CO2とH2Oのみが生成されます。 タスク: STDINまたは最も近い同等物からの入力を受け取り、STDOUTまたは最も近い同等物を使用して反応全体を出力する完全なプログラムを提供します。 入力は、常にの形式C(n)H(2n+2)になりn > 0ます。これらはいくつかの入力例です: CH4 C2H6 C3H8 C4H10 C5H12 C6H14 etc. 役に立つヒント: すべてのアルカンには、燃焼反応の標準パターンがあります。 2C(n)H(2n+2) + (3n+1)O2 > (2n+2)H2O + (2n)CO2 例えば C4H10次の方程式が得られます2C(4)H(2*4+2) + (3*4+1)O2 > (2*4+2)H2O + (2*4)CO2。すべてを計算した後、次の最終式が得られます。2C4H10 + 13O2 > 10H2O + …

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