プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

13
ゼロサムカバー
前書き 整数の空でないリストLを考えます。ゼロサムスライスのLは、の連続サブシーケンスであるL、その和例えば0に等しい、[1、-3、2]のゼロ和スライスである[-2、4、1、-3、2,2 、-1、-1]ですが、[2、2]は(合計が0にならないため)ではなく、[4、-3、-1]にもなりません(隣接していないため)。 ゼロ和スライスの集合LがあるゼロサムカバーのLすべての要素は、スライスの少なくとも一つに属する場合。例えば: L = [-2, 4, 1, -3, 2, 2, -1, -1] A = [-2, 4, 1, -3] B = [1, -3, 2] C = [2, -1, -1] 3つのゼロサムスライスA、B、およびCは、Lのゼロサムカバーを形成します。次のように、同じスライスの複数のコピーがゼロサムカバーに表示される場合があります。 L = [2, -1, -1, -1, 2, -1, -1] A = [2, -1, -1] B = [-1, -1, 2] …

30
ババブからzyzyzまでのすべての単語
あなたの仕事は、以下の構造を持つ5文字ごとの読み取り可能なリストを出力するプログラムを作成することです。 子音-母音-子音-母音-子音 出力はアルファベットごとにソートされ、1行に1つの単語があり、単語が2回繰り返されることはありません。小文字でも大文字でもかまいませんが、混在させることはできません。したがって、リストは次のように開始および終了できます。 babab babac babad ... zyzyw zyzyx zyzyz 母音はa - e - i - o - u - yであり、他の20個の英語のアルファベット文字は子音です。 単語は実際の辞書の単語である必要はありません。 最短のコードが優先されます。 注:数年前、私は大学のWebサイトでまさにそれを行ったプログラムを見つけました。私の姓と名がcvcvc制約に適合することがわかり、私は自分自身をグーグルで探していました。

30
ゼロに隣接する最大数を見つける
チャレンジ: ベクトル/整数のリストを入力として受け取り、ゼロに隣接する最大数を出力します。 仕様: いつものように、オプションの入力および出力形式 少なくとも1つのゼロ要素と、少なくとも1つの非ゼロ要素があると想定できます。 テストケース: 1 4 3 6 0 3 7 0 7 9 4 9 0 9 0 9 15 -2 9 -4 -6 -2 0 -9 -2 -11 0 0 0 0 0 -12 10 0 0 20 20 幸運と幸せなゴルフ!
38 code-golf  number 

30
バランスの取れた数値ですか?
:数がそう、番号の各半分の数字の合計が等しい場合にバランスされている1423ので、バランスされ1+4 = 2+3そうである。42615ため4+2=1+5。奇数の桁がある場合、中央の数字はどちらの側にも含まれません(または両側に含まれます)。 チャレンジ: 入力として正の整数を取り、バランスが取れている場合は真実の値を、バランスが取れていない場合は偽の値を出力します。 テストケース(true) 1 6 11 141 1221 23281453796004414 523428121656666655655556655656502809745249552466339089702361716477983610754966885128041975406005088 テストケース(false) 10 12 110 15421 5234095123508321 6240911314399072459493765661191058613491863144152352262897351988250431140546660035648795316740212454 たとえば、の00032代わりにゼロで始まる数字はありません32。少なくとも100桁までの数字をサポートする必要があります(100桁以上2^64-1)。いつものように、オプションの入力形式なので、必要に応じて数字をアポストロフィで囲むことができます。
38 code-golf  number 

2
放射線軟化クイン
それは簡単です:キャラクターを削除しても、それはまだクインである適切なクインを作成します。 これと放射線強化クインの違いはAB、プログラムがの場合、放射線強化クインでAは出力されますABが、ここでAは出力されますA。 コードゴルフ、すべての標準ルール、標準の抜け穴が適用され、不正行為はありません。

4
あなたはロマナイザー、ベイビー
日本語のローマ字化は、日本語のテキストをラテン文字に変換しています。このチャレンジでは、入力として日本語の文字列が与えられ、それらを正しいASCII文字列に変換することが期待されます。 知っておくべきこと 日本語には、ひらがな(短い単語に使用される曲線のある文字)、カタカナ(他の言語から借用した音や単語に使用される角度のある文字)、および漢字(元々は中国語に由来する密集した文字)の3つの表記体系があります。この課題では、ひらがなだけを心配します。 ひらがなの五十音には46文字あります。各文字は音節を表します。キャラクターは、最初の音(子音)と2番目の音(母音)で構成されています。順序の列はaiueoです。 : あいうえお k: かきくけこ s: さしすせそ t: たちつてと n: なにぬねの h: はひふへほ m: まみむめも y: や ゆ よ r: らりるれろ w: わ を N: ん (この表をコピーして貼り付ける場合、表意文字スペースU + 3000を使用してyとwの間隔を空けていることに注意してください) したがって、たとえば、あとめはの出力を生成する必要がありますatome。最初の文字はa、2番目はto、3番目はmeです。 例外 他の優れた言語と同様に、日本語にはその規則の例外があり、ひらがなの表にはいくつかの例外があります。これらの文字の発音は、表内の位置が意味するものとはわずかに異なります。 し:shi、not si ち:chi、ti nottsu:tsu、not tu ふ:fu、nothu 濁天゛ 「濁」という言葉は「泥だらけのマーク」を意味します:濁点は、音声を(通常)有声音に変換します。たとえば、kaかはか゛に変わりgaます。変更の完全なリスト: k→ g s→ z t→ d h→b …

30
オッズを教えてはいけない
入力 整数N(≥1)と桁D(整数ように0≤ D ≤9)。 どちらの順序でも。stdinまたはparametersなどから; プログラムまたは機能へ。等 出力 10進表現に偶数のdが含まれる1からnまでの整数(順番)。(つまり、リスト内の整数は、それぞれ偶数個のdを持つ整数です。) 標準形式など。特に、出力を10進数で表す必要はありません。 単一の文字列として出力する場合、整数を何らかの方法で区切る必要があります(スペース、コンマ、改行、nullバイトなど)。 例 in(d,n) ↦ out 1,12 ↦ 2 3 4 5 6 7 8 9 11 0,111 ↦ 1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,111 ありがとう quintopiaタイトルのために。

1
Meeesesessessesseesseessedeseded upp teeexexextextを修正する
これは、月曜日のミニゴルフ#6に触発されています:Meeesesessess upp teeexexextext バックグラウンド ETHproductionは、彼の通常のWebページにテキストを入力するのが困難です。彼が数字または文字を使用するたびに、テキストはmeeesesessessesseesseessedesdesededになります。あなたの仕事は、通常の動作が達成されるように彼がタイプするのを助けることです。 変換 変換は、英数字[0-9A-Za-z]以外の文字で区切られた英数字()文字の実行に影響します。次の例では、最初の行が2番目の行に変換されます(他の行は変換の内訳を示しています) An12num: Annn1n12n12nn12nn12nun12nun12numn12num A nn n1 n12 n12nn12n n12nun12nu n12numn12num 特に、最初の文字以降の英数字は、最初の文字を除き、これまでの実行全体に変換されます。さらに、文字が(数字ではなく)文字の場合、文字は実行の2倍になります。 ありがたいことに、バックスペースは最後の文字を削除し、実行の開始もリセットします。 仕事 今回は、タスクは変換を実行しないことです。代わりに、入力文字列が与えられた場合、エンコードされたテキストを返さなければなりません。エンコードされたテキストは、変換されると入力になります。出力は\<char>、単一の文字としてカウントされる場合、できるだけ短くする必要があります。 テキストは次のようにエンコードされます。 \ -> \\ backspace character -> \b linefeed -> \n プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 テストケース 各テストケースは2行で、1行目は入力、2行目は出力です。 Heeeeeelp me. It shouldn't be messed up. Hee \blp\b me\b. It\b sh\bou\bld\bn't be\b me\bss\bed\b up\b. alert("Hello, …
38 code-golf  string 

30
リエン数
Champernowne定数は、最初のn数nを無限大に連結して構築される数です。次のようになります。 0.123456789101112131415161718192021222324252627282930... 次に、Rien番号について説明します。これは、整数としてのシャンペルノーン定数の最小化と考えることができます。Rien番号の最初のn桁をRi(n)と呼びます。これはそれを定式化する方法です: 最初のn自然数(シーケンス{1,2,3、...})は連結されます。 この結果は、数字の値に従ってソートされます。の1..12ようになり011111223456789ます。 以来離煙の数がゼロをリードすることはできません、我々はすべて移動し0、言って、その結果、最小限の数を維持しながら、彼らは重要であるようです101111223456789。これはRi(n)、この場合はRi(12)です。 Ri(n)の結果の一部を次に示します。 n Ri(n) 1 1 2 12 3 123 7 1234567 9 123456789 10 10123456789 15 101111111223344556789 34 10001111111111111222222222222223333333334444555666777888999 42 100001111111111111122222222222222233333333333333444444455556666777788889999 45 100001111111111111122222222222222233333333333333344444444444555556666777788889999 55 10000011111111111111122222222222222223333333333333333444444444444444455555555555566666777778888899999 100 1000000000001111111111111111111111122222222222222222222333333333333333333334444444444444444455555555555555555555666666666666666666667777777777777777777788888888888888888888999999999999999999994449999 9991000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 目的n入力として1≤<10000の数値(引数、STDIN、または言語が従来の入力をサポートしていない場合はハードコーディングを使用)を与え、Ri(n)を出力/返します。 これはcode-golfであるため、バイト単位の最短コードが優先されます。このチャレンジに答えるために作成されていない限り、このコンテスト後に作成された言語を使用できます。(もちろん、それが興味深い解決策を提供する場合、それを使用できますが、非競合として答えをマークします。) リファレンス実装 IEでこれをテストしたので、実際には問題はないはずです。問題がある場合、簡単な解決策があります:健全なブラウザを取得します。 function min(n) { var seq = []; for(var i = 1; i …

8
パズルをスライドさせることはできますか?
すべての細胞はどちらかであるテキストの矩形グリッドにかかるプログラムや機能書きますAかB。すべてのAセルは単純に接続された形状を形成します。つまり、すべてのセルは穴なしで直交して接続されます(斜めに隣接する文字は接続されているとはみなされません)。同様に、すべてのBセルが別の単純に接続された形状を形成します。グリッドは、常に少なくとも一つ含まれていますAし、少なくとも一つをB。 グリッドは、実際に表される薄いプラスチック二塊状状片であり、想像AとB部分。テーブルの上に平らに置いた場合、テーブルの上で両方を完全に平らに保ちながら、2つの部品を引き離すことができますか? 2つの図形と図形を単純に引き離すことでこのように分離できる場合は、真理値を印刷または返します。そうでない場合は、偽の値を出力するか返します。AB たとえば、入力 AAA ABB AAA BBセクションは右にスライドして、から分離できるため、真実ですA。 AAA A BB AAA ただし、入力 AAAA ABBA ABAA スライドする方法はありませんのでfalsyあるAとB、それらを重複せずに離れた部分は。 バイト単位の最短コードが優先されます。必要に応じて、およびの代わりに任意の2つの印刷可能なASCII文字を使用できます。AB 真実の例(空行で区切られている) BBB BAA BBB BA A B AB AB AAA BBB AAAAB ABBBB ABBA ABBA AAAA AAAAAABBBBBBBBB AABBBBBBBBBBBBB AAAAAAAAAABBBBB AABBBBBBBBBBBBB AAAAAAAAAAAAAAB AAAAAAAAAAAA ABABABABABAB BBBBBBBBBBBB BAAAAABB BBAAABBB BBBABBBB BBBABBBB BBBABBBB BBBBBBBB BBBBBBBB AAA …

19
時間依存エコー
バックグラウンド echoプログラムはとてもきれいです。あなたはそれに何でも言うことができ、それはあなたの言葉を毎回完璧に繰り返します!なんてかっこいい!残念なことに、入力速度に関係なく、入力を一度に繰り返しますが、これはあまり現実的ではありません。これを修正する必要があります。 タスク プログラムは、STDINまたは最も近い同等物から入力を受け取るものとします。ユーザーから空の行が入力されるまで、行を1つずつ読み取り、場合によってはプロンプトを表示します。その後、指定されたのと同じ順序で、STDOUTまたは最も近い同等の行を出力します。最後の(空の)行は印刷されず、最後に印刷された行には末尾の改行が必要ありません。 さらに、プログラムは各行間の時間間隔を保持します。ユーザーxが行を入力するのに数秒かかった場合x、プログラムが印刷するのに数秒かかります。これは、最初と最後の行にも適用されます。空の行は印刷されませんが、プログラムは終了するまでとにかく待機します。 例 以下はプログラムとのセッションの例です。テキストを生成しないすべてのアクションは括弧で囲まれ、(オプションの)プロンプトはとして表示され>ます。 [begin program] > fhtagn[enter; 1.48s passed since starting program] > yum yum[enter; 3.33s passed since previous enter] > so cool![enter; 2.24s passed since previous enter] > [enter; 0.23s passed since previous enter] [wait 1.48s]fhtagn [wait 3.33s]yum yum [wait 2.24s]so cool! [wait 0.23s, then …
38 code-golf 

28
感謝祭はいつですか?
バックグラウンド 10月31日、12月25日などのように、覚えやすい日付が固定されている休日もあります。ただし、面倒なことを望む休日もあります。それらは、「9月の第1月曜日」または「11月の第4木曜日」などとして指定されます。いつそれを知るのですか? 私が知っているのは、感謝祭が近づいているということです。ですから、私はそれがいつなのかを理解するのに役立つプログラムが必要です。明日だと言う人もいるので、時間内に再入力できるようにするには、プログラムをできるだけ短くする必要があります。 チャレンジ 4桁までの年(たとえば、2015または1984)を指定して、その年の米国の感謝祭の日付を出力または返すプログラムまたは関数を作成します。ウィキペディアのページによると、感謝祭は11月の第4木曜日と定義されています。(ヒント:このページには、日付パターンに関する興味深い情報も含まれています。) 入力:Common Era(CE)の年を表す最大4桁の10進数。例:987、1984、2101 出力:月と日を含む、その年の感謝祭が該当する日付、または存在する場合は該当する日付。これは、合理的な形式である可能性があります。最善の判断をしてください。グレゴリオ暦は、その時点で使用されていなかった場合でも、すべての場合に使用します。 (注:うるう年を正しく処理してください!) テストケース 入力1: 2015 出力1: Nov 26 入力2: 1917 出力2: Nov 22 得点 提出はバイト単位で記録されます。好きなカウンターを使用できますが、バイト数を追跡​​するためにこのWebサイトをお勧めします。 ボーナス 負の数としてBCE日付を処理する場合、スコアの-25%(たとえば、-480はThermopylaeの戦いの年になります)。 負のテストケース入力: -480 対応する出力: Nov 25 これはcode-golfなので、最低スコアが勝ちです! 編集:Thomas KwaのTI-BASIC提出物を承認済みとしてマークしています。これにより、新しいエントリの送信が妨げられないようにしてください。 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 # Perl, …
38 code-golf  date 

17
ガーランド化
ガーランドの言葉 花輪の言葉は、それはそれで始まる同じ文字で終わっているため、花輪のようにつなぎ合わせすることができます言葉です。これらの文字のグループは重複することもあります! たとえば、undergroundは3、同じ3文字で開始および終了するため、順序のガーランド語ですund。これは、のように一緒に張ることができることを意味しundergroundergrounderground...ます。 alfalfaガーランドの言葉も!順序は4です。開始と終了はalfaです。次のように連結できますalfalfalfalfa。 私がガーランド化と呼ぶプロセスnは、ガーランドの単語の順序を決定したら、元の単語を取得し、それをガーランドn回としてループさせるために必要なセグメントを追加することです。だから、onion順序2ガーランドの単語なので、取得onionする最初の2文字を切り取りion、取得する終了2時間に追加しますonionionion。 目的 作成したプログラムや機能からの入力を受け取り、標準入力または関数の引数とプリントアウトしたりgarlandified言葉を返しました。 すべての単語は小文字であり、単語の最高位はlength(word) - 1です。 I / Oの例 "onion" --> "onionionion" "jackhammer" --> "jackhammer" "abracadabra" --> "abracadabracadabracadabracadabracadabra" "" --> "" "zvioz" --> "zviozvioz" "alfalfa" --> "alfalfalfalfalfalfa" "aaaa" --> "aaaaaaa" これはcode-golfなので、最小バイト数が勝ちます。
38 code-golf  string 

9
遅いエラーのクインメーカーを作ろう!
Make a Error Quine!への彼の答えの一部として!、@ Falkoは次のアルゴリズムを提案しました。 2分で独自のソリューションを作成する方法は? 選択したIDEで新しいファイルを開きます。 目の前のキーボードに頭を叩きます。 コンパイル。 コードをコンパイラエラーメッセージに置き換えます。 コードが収束するまで、手順3と4を繰り返します。 ほとんどの場合、そのような手順はかなり早く終了するに違いありません! 仕事 あなたの仕事は彼が間違っていることを証明することです。 以下を満たす完全なプログラムを作成します。 コンパイルまたは解釈されると、エラーメッセージが生成され、コンパイルまたは解釈されると、エラーメッセージも生成されます。 手順1を何度も繰り返すと、最終的に不動点、つまりエラークインが発生します。 追加のルール 最終エラーメッセージの長さは正でなければなりません。ただし、以前のエラーメッセージと元のソースコードは空の場合があります。 元のソースコードの長さは1024バイトを超えることはできません。 元のコードも、いずれかの手順で生成されたコードも、エラー以外の出力を生成することはありません。 出力はエラーメッセージとして明確に識別可能でなければならず、構文エラー、ランタイムエラー、未定義の参照などのためにコンパイラ/インタプリタによって生成される必要があります。 プログラムは、ループを生成するために入力を受け取ったり、フラグを必要としない場合があります。 プログラムは、言語またはそのバージョンの特定の実装に依存する場合があります。 得点 スコアは、ソースコードでエラークインを生成する前に必要なステップの有限数です。最高スコアの提出が勝ちです。 元のソースコードの長さがタイブレーカーとして使用されます。短いほど良い。 例 ではチキン、プログラム 次のエラーメッセージを生成します。 TypeError: Cannot read property 'NaN' of undefined このエラーメッセージが次に解釈されると、エラーメッセージが生成されます。 Error on line 1: expected 'chicken' 順番に解釈すると、それ自体が生成されます。 したがって、空のチキンプログラムのスコアは2です。 反例 PHPコード ab<?=c エラーメッセージを生成します …

15
温度変換器
これは、3つのユニット(摂氏、ケルビン、華氏)のいずれかの入力温度を他の2つのユニットに変換する必要があるバイトサイズのチャレンジです。 入力 温度が数値として提供され、その後に単位が続きます(スペースで区切られます)。温度は整数または浮動小数点数(23対23.0または23.678)です。 STDIN / ARGV / function引数または最も近い同等物からスペースで区切られた文字列を読み取り、STDOUTまたは最も近い同等物に出力を出力する関数または完全なプログラムを送信できます。 出力 出力は、他の2つの形式に変換された温度であり、改行で区切られ、各行に対応するユニット文字が続きます(オプションでスペースで区切られます)。2つのユニットの順序は関係ありません。 出力精度 変換された数値は、小数点以下4桁まで丸められずに正確でなければなりません。 最初の4桁(丸めなし)が正確である限り、末尾のゼロまたは小数点は省略可能です。また、実際の回答の小数点の後に4つのゼロがある場合、4つのゼロや小数点をスキップできます。 先行ゼロはないはずです 上記の3つの要件を満たす限り、任意の数値形式を使用できます。 ユニット表現 温度の単位は、次のいずれかです。 C 摂氏用 K ケルビン用 F 華氏用 例 入力: 23 C 出力: 73.4 F 296.15 K 入力: 86.987 F 出力: 303.6983 K 30.5483 C 入力: 56.99999999 K 出力: -216.1500 C -357.0700 F これはコードゴルフなので、バイト単位の最短エントリが勝ちです!ハッピーゴルフ! リーダーボード …

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