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

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

11
トランペットの演奏を手伝ってください
トランペットは、通常で登板バルブ付きaerophone機器、ですB♭。プレイヤーが唇を振動させて楽器内の空気を移動させると、音が鳴ります。その振動は、アンブシュアと呼ばれる特定の方法で口を設定することによって取得されます。唇がよりタイトまたはルーズなアンブシュアは、ピッチが異なります。 さらに、トランペットの各バルブは、楽器のピッチも変更します。押されると、バルブが楽器のチューブ内の経路を閉じ、空気が長い経路を流れるようにし、元の音のピッチを下げます。この課題のために、標準のB♭トランペットを考えます。最初のバルブはピッチをフルステップ下げ、2番目はピッチをハーフステップ下げ、3番目はピッチを1段下げ、半歩。 チャレンジ あなたの課題は、2つの入力embouchureとが与えられたときvalvesに、演奏されるノートのピッチを決定するプログラムまたは関数を作成することです。 このチャレンジの目的のために、メモはシーケンスに従います。 B♭, B, C, C♯, D, E♭, E, F, F♯, G, G♯, A. ルール I / Oは、合理的な方法で取得/指定できます。 標準の抜け穴が適用されます。 必要に応じて、bおよびの#代わりに使用することができます。♭♯ の入力はvalves、押し下げられたバルブのリスト(1, 3)またはブールリスト(1, 0, 1)として取得できます。 これはcode-golfなので、各言語で最も短いコードが優先されます。 テストケース: Valves これらのテストケースでは、0が押され、1が押されたことを意味するブールリストとして与えられます。 Embouchure: Valves: Output: B♭ 0 0 0 B♭ B♭ 0 1 0 A B♭ 1 0 1 F C♯ …
14 code-golf  music 

18
関連する数字グループを見つける
最近、私の評判はでした25,121。各数字のグループ化(つまり、コンマで区切られた数字)が完全な正方形であることに気付きました。 あなたの挑戦は、非負の整数Nと単項ブールブラックボックス関数 f:Z * → Bが与えられると、Nの桁グループに適用されるfの各値が真である場合は真の値を返し、それ以外の場合は偽です。 右側から数を3のグループに分割することにより、数字のグループ化を見つけることができます。一番左のグループには、1、2、または3桁があります。いくつかの例: 12398123 -> 12,398,123 (3 digit groupings) 10 -> 10 (1 digit grouping) 23045 -> 23,045 (2 digit groupings) 100000001 -> 100,000,001 (3 digit groupings) 1337 -> 1,337 (2 digit groupings) 0 -> 0 (1 digit grouping) 追加のルール この関数は、ブール値(trueおよびなどfalse)、1sおよび0s、または真偽値にマッピングできます。回答でサポートされている形式を指定してください。 入力として整数、または整数文字列(数字で構成される文字列)を使用できます。 プログラムまたは関数を作成できます。 デジタルグループを関数fに渡す場合、不要な先行ゼロをすべて削除する必要があります。例えば、F、に適用した場合N = 123000のように実行されるべきであるF(123)およびF(0)。 …

9
巡回差分セットの検証
循環差分セットは、一意のプロパティを持つ正の整数のセットです。 ましょうnセットで最大の整数になります。 Let rは、0より大きく、以下の任意の整数(セット内にある必要はありません)n/2です。 してみましょうkことが解決策の数にとセットの任意のメンバーです。各ソリューションは順序ペアです。(また、多くの言語での実装とは異なり、このバージョンのモジュロは、追加することで負の数を正にすることに注意してください。)(b - a) % n = rab(a,b)n 最後に、これが循環差分セットである場合にのみ、の値はのk選択に依存しませんr。つまり、すべての値はr、上記の一致に対して同じ数の解を与えます。 これは、次の例で説明できます。 Cyclic difference set: {4,5,6,8,9,11} 0 < r <= 11/2, so r = 1,2,3,4,5 r=1: (4,5) (5,6) (8,9) r=2: (4,6) (6,8) (9,11) r=3: (5,8) (6,9) (8,11) r=4: (4,8) (5,9) (11,4) since (4-11)%11=(-7)%11=4 r=5: (4,9) (6,11) (11,5) の各値にrは同じ数の解(この場合は3)があるため、これは循環差分セットです。 入力 …

12
パリンドローム部分文字列からパリンドロームをつなぎ合わせる
文字列を考えるとl、全てのパリンドロームのサブストリングを見つけるpのl(重複し、単一の文字列を含む)を。次に、すべての部分文字列をp有効な回文に再配置します(複数の正解がある場合があります)。p単一のパリンドロームに再配置できない場合は、プログラムに未定義の動作(エラー、スタックオーバーフロー、終了、ジョンドヴォルザークの首吊り/早すぎる殺人など)が含まれている可能性があります。 例 有効なテストケース l = anaa p = ['a', 'n', 'a', 'a', 'aa', 'ana'] result = anaaaaana or aanaaanaa or aaananaaa l = 1213235 p = ['1', '2', '1', '3', '2', '3', '5', '121', '323'] result = 1213235323121 l = racecar p = ['r', 'a', 'c', 'e', 'c', 'a', 'r', …

14
与えられたサイズのすべての正方形部分行列を生成します
整数Mの正方行列と、Mのサイズより厳密に小さい別の正の整数nが与えられます。あなたの仕事は、サイズnのMのすべての正方形部分行列を生成することです。 この課題のために、正方形のサブマトリックスはMに含まれる隣接する行と列のグループです。 入力/出力フォーマット 他の合理的な形式を自由に選択できます。これらはほんの一例です。 入力 ネイティブマトリックスタイプのマトリックス(言語にマトリックスがある場合) 2D配列(それぞれが1行/ 1列に対応する1D配列の配列) 1D配列(行列は常に正方形であるため) 文字列(スペースを選択しましたが、これを悪用しないでください)など 出力 マトリックスのマトリックス。 各要素(3Dリスト)が行/列の部分行列を表す4D配列。 3D配列。各要素(2Dリスト)はサブマトリックスを表します。 結果の部分行列などの文字列表現。 スペック 入力としてMのサイズを選択することもできます。少なくとも2であることが保証されています。 出力の方向は任意です。サブマトリックスを列のリストまたは行のリストとして出力することを選択できますが、選択は一貫している必要があります。 デフォルトではこれらの抜け穴が禁止されていることに注意しながら、任意のプログラミング言語で競争し、標準的な方法で入力を取得し、出力を提供できます。 これはcode-golfであるため、すべての言語の最短の送信(バイト単位)が優先されます。 例 与えられたN = 3とM: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 可能な3x3部分行列は次のとおりです。 + ------- + + -------- + 1 2 3 …

9
極大値と極小値を見つける
定義 特定の関数の最大値と最小値は、特定の範囲内または関数のドメイン全体内の関数の最大値と最小値です。 チャレンジ 課題は、任意の方法を使用して、特定の多項式関数の極大値と極小値を見つけることです。心配しないでください、私は挑戦を説明して、それをできるだけ単純に保つために最善を尽くします。 入力には、電力の降順または昇順のいずれかで(単一の)単一変数多項式のすべての係数が含まれます。例えば、 [3,-7,1] 代表します 3x2 - 7x + 1 = 0 [4,0,0,-3] 代表します 4x3-3=0. 解決方法(デリバティブを使用)? ここで、入力が[1,-12,45,8]であるとしましょう。これは関数にすぎません。x3 - 12x2 + 45x + 8 最初のタスクは、その関数の導関数を見つけることです。これは多項式関数なので、実際には簡単なタスクです。 の導関数はです。に存在する定数項は単純に乗算されます。また、加減算された用語がある場合、それらの導関数もそれぞれ加算または減算されます。定数数値の導関数はゼロであることを忘れないでください。以下に例を示します。xnn*xn-1xn x3 -> 3x2 9x4 -> 9*4*x3 = 36x3 -5x2 -> -5*2*x = - 10x 2x3 - 3x2 + 7x -> 6x2 - 6x …

4
砂時計の下部
チャレンジ: 入力: 3つの整数:下端の長さ。砂粒の開始量; インデックス 出力:指定された下端の長さと砂粒の量に基づいて、指定されたインデックスで砂時計の下部の状態を出力します。 チャレンジルール: 1〜9の数字で砂の粒をシミュレートします 私たちは、あなた自身の選択の1文字が続き、途中で上部の砂の粒の現在の残量を置く(数字、空白や改行を除く、すなわち-)その下の行に 砂時計がいっぱいになると、行ごとに1桁ずつ埋めます 砂が左または右に移動できる場合は、常に右に移動します(砂時計の上にある砂粒の残​​りの量のバランスをとる場合も同じです) 9に達すると、砂が満たされ、砂時計の特定の場所にこれ以上砂を入れることができなくなります 残った砂の粒の量も常に正しく揃えられています 砂時計の下半分が完全に満たされるか、残った砂粒の量が0に達すると、これ以上進むことはできません。これは、このポイントを超えるすべてのインデックスの出力になります 0インデックスまたは1インデックスの両方が許可されています。回答で使用したものを指定してください。 末尾と先頭のスペース、および単一の末尾または先頭の改行はオプションです あなたがそれらを表示することを選択した場合、砂時計の下の部分の空白を埋めるためにゼロの代わりに他の文字を使用することができます(数字、改行、または首として使用した文字を除く)。 下端の長さは常に奇数になります 下端の長さは>= 3;になります。砂粒の量>= 0 必要に応じて、指定されたインデックスまでのすべての状態を印刷することもできます (インデックスが0の)インデックスは、砂の粒の合計量より大きくなることはないと想定できます(したがって、砂の粒が100個ある場合、インデックス100は最大の有効なインデックス入力です)。 最初のインデックス(インデックスが0の場合は0、インデックスが1の場合は1)は、砂粒の量が上にある空の砂時計を出力します。 例:写真(またはascii-art)は1000語以上の単語を言うので、以下に例を示します。 入力下端の長さ:5 砂粒の入力量:100 現在のインデックスの代わりに、ここにすべてのステップを表示します。 下端の長さ5と砂粒の量を含むすべての可能なインデックスの出力100: 100 - 0 000 00000 99 - 0 000 00100 98 - 0 000 00110 97 - 0 000 01110 96 - …

14
2つのリストを最大値で比較する
負でない整数の2つの異なるリストが与えられた場合、最大値が最大のリスト(例えば[4, 2], [3, 3, 1] -> [4, 2])を返します。 両方に同じ最大値がある場合、この最大値のインスタンスをさらに含むリストを返します(例:)[4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4]。 これらの比較の後、それらが等しい場合、同じ比較を行いますが、次に高いアイテム(例[2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1])を使用します。 これらすべての比較の後、それらがまだ等しいと見なされる場合、より長いリストを出力します(例:)[4, 3, 2, 1, 0], [1, 2, 3, 4] -> [4, 3, 2, 1, …

6
印象的な時計に合わせる
前書き: 自宅には、1時間ごとに指定された量を打つ時計がありますが、30分ごとに1回打つ時計もあります。したがって、0:01から12:00までは、この順序でストライキします。 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12 チャレンジ: 整数を指定nすると、総ストライクがに等しい時間枠のリストを出力しnます。さらに、常にこの時間枠の少なくとも1分前に開始し、この時間枠の少なくとも1分後(最大で29分)に終了します。 たとえば、入力がのn=8場合、出力は次のようになります。 [00:59-03:01, 01:29-03:31, 02:59-04:01, 05:29-06:31, 06:29-07:01, 06:59-07:31, 07:59-08:01] これらの時間枠には以下の合計があり、すべて等しい8: [1+1+2+1+3, 1+2+1+3+1, 3+1+4, 1+6+1, 1+7, 7+1, 8] チャレンジルール: 出力は柔軟です。Time(またはDate / DateTime)オブジェクト、タイムスタンプ、文字列(先頭のゼロの有無にかかわらず)、.29/ .31/ .59/ …

7
彼らは週の同じ日になることができますか?
チャレンジ 負でない整数を指定すると、(グレゴリオ暦の)2つの日付が何年も異なるために曜日を共有できるかどうかを出力します。年は、4で割り切れるが100で割り切れない場合、または400で割り切れる場合、うるう年と見なされます。 出力は次のとおりです。 falsey / truthy(どちらの向きでも) 任意の2つの異なる値 1つの明確な値と1つの何か プログラムの戻りコード別 成功/エラーによって 他の合理的な手段で-物議をかもしていると思われるかどうか尋ねる しかし、ない falsey / truthy以外の値の二つの非明確なセットによって(これはノーオペレーションを許可しないだろうと!) 詳細 これは、入力がOEISシーケンスA230995のメンバーであるかどうかです。 メンバー: 0, 5, 6, 7, 11, 12, 17, 18, 22, 23, 28, 29, 33, 34, 35, 39, 40, 45, 46, 50, 51, 56, 57, 61, 62, 63, 67, 68, 73, 74, 78, 79, …

16
Mod 2多項係数
quintopiaは、ここで多項係数を計算するための課題を投稿しました(ここのテキストの一部はそこからコピーされています)。多項係数mod 2を計算する楽しいアルゴリズムがあります。 数のリストk 1、k 2、...、k mが与えられると、多項係数の剰余を出力します。 それぞれについて、以下のアルゴリズムが効率的にこれを行うMOD 2を減少K iがバイナリ拡張計算し、kはiが発見であること、IJ各ようにijが 1または0であり、そして r≠sに対してa rj = a sj = 1のようなjがある場合、関連するmod 2多項係数は0です。それ以外の場合、mod 2多項係数は1です。 仕事 m個の数値、k 1、k 2、...、k mを取り、対応する多項係数を出力または返すプログラムまたは関数を作成します。プログラムでは、必要に応じて、オプションでmを追加の引数として使用できます。 これらの数値は、コード化プロセスではなくコードによって多項係数の実際の計算が実行される限り、任意の形式で入力できます。たとえば、リストにグループ化するか、単項でエンコードするなどです。 多項係数が奇数の場合、出力は任意の真理値、多項係数が偶数の場合は偽値となります。 多項係数を計算するために設計された組み込み関数は使用できません。 標準の抜け穴が適用されます。 得点 これはコードゴルフです。バイト単位の最短ソリューションが勝ちです。 例: 7、16、および1000の多項係数を見つけるために、それぞれをバイナリ展開します。 1つ以上の列を持つ列はないので、多項係数は奇数であり、したがって、何らかの真実を出力する必要があります。 7、16、および76の多項係数を見つけるために、それぞれをバイナリ展開します。 76と7の2進展開には4があるため、多項係数は偶数であり、偽値を出力します。 テストケース: Input: [2, 0, 1] Output: Truthy Input: [5,4,3,2,1] Output: Falsey Input: [1,2,4,8,16] Output: Truthy …

15
目標値に達する組み合わせを生成する
チャレンジ 数字のリストとターゲット値があるとします。目標値に達する数字のすべての組み合わせのセットを見つけ、それらをリストインデックスとして返します。 入出力 入力には、番号のリスト(必ずしも一意ではない)とターゲットの合計番号が必要です。出力は空でないリストのセットになり、各リストには元の入力リストの値の位置に対応する整数値が含まれます。 例 Input: values = [1, 2, 1, 5], target = 8 Output: [ [0,1,3], [1,2,3] ] Input: values = [4.8, 9.5, 2.7, 11.12, 10], target = 14.8 Output: [ [0,4] ] Input: values = [7, 8, 9, -10, 20, 27], target = 17 Output: [ [1,2], …

10
プライムへの分解
整数nを指定すると、nが素数のリストとして記述できるウェイの数を返します。例えば、2323のように書くことができ(2,3,23)、(23,23)または(2,3,2,3)あるいは(23,2,3)あなたが出力だろうので、4。この方法で記述できない場合は、を出力する必要があります0。 019またはなどの素数00000037は、この問題の有効な素数です。 テストケース: 5 -> 1 55 -> 1 3593 -> 4 (359 and 3, or 3 and 593, or 3 and 59 and 3, or 3593) 3079 -> 2 (3 and 079, or 3079) 119 -> 0 5730000037 -> 7 (5,7,3,000003,7, 5,7,3,0000037, 5,73,000003,7, 5,73,0000037, 5,73000003,7, 5,7,30000037, 5730000037) 0-> undefined …

11
サブセット合計のNビットバリエーション
私が書いている別の課題については、テストケースが有界整数で解けることを検証する必要があります。具体的には、空ではない整数の配列Aと整数のビット幅について、以下を検証する必要がありますn。 すべての整数aがA満たされます-2**(n-1) <= a < 2**(n-1)(n-bit 2の補数整数で表現可能)。 の長さAは未満です2**n。 の合計はをA満たし-2**(n-1) <= sum(A) < 2**(n-1)ます。 要素のすべての組み合わせはA、上記のすべての条件を満たす。 当然、この問題を外部に委託することにしました! 整数の配列Aと正の整数ビット幅nを指定するとA、上記の条件を満たすことを確認します。 テストケース [0, 0, 0], 2: True [0, 0, 0, 0], 2: False (violates #2) [1, 2, 3, 4, 5], 8: True [1, 2, 3, 4, 5], 2: False (violates all conditions) [1, 2, 3, …

14
Modバランスリスト
前書き L = [-1,2,2,1,2,7,1,4]などの整数のリストがあるとします。私は人生でバランスを取るのが好きなので、偶数要素と同じくらい多くの奇妙な要素を持っているのを見てうれしいです。さらに、すべての3のモジュロクラスに等しい数の要素があり、次の要素があります。 [-1,2,2,1,2,7,1,4] 0 mod 3: 1 mod 3: 1 7 1 4 2 mod 3: -1 2 2 2 悲しいことに、4のモジュロクラスの場合、これはもはや成り立ちません。一般に、空でないリストは、この数が0ではないNのすべてのモジュロクラスに等しい数の要素がある場合、モジュロNでバランスが取れていると言います。上記のリスト Lがバランスモジュロ2及び3であるが、不平衡モジュロ4。 タスク 入力は、適切な形式で取得された整数の空でないリストLです。あなたの出力は、これらの整数のリストであるN≥2なるようにLがモジュロバランスさN、再び任意の合理的な形式で、。出力の順序は重要ではありませんが、重複を含めることはできません。 出力には有限数の数値しか存在しないことが保証されています。つまり、Lのすべての要素が同じ回数出現するわけではないことを正確に意味しています。無効な入力の例は[3]、[1,2]および[0,4,4,0,3,3]です。出力の最大数は最大でmax(L)-min(L)であることに注意してください。 各言語の最小バイト数が優先され、標準のコードゴルフ規則が適用されます。 テストケース [1,1,2] -> [] [1,1,5] -> [2,4] [1,1,24] -> [23] [1,2,3,2] -> [2] [12,12,-4,20] -> [2,3,4,6,8,12,24] [1,1,12,12,-3,7] -> [3,10] [-1,2,2,1,2,7,1,4] -> [2,3] …

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