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

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

12
関数クリップボード:コピー
この課題は、2018年5月の「Language of the Month」イベントの一環として、MATL言語の機能の一部に関連しています。 関連する課題:関数クリップボード:貼り付け。 前書き MATLには、値を保存(コピー)して後で取得(貼り付け)できるクリップボードがいくつかあります。一部のクリップボードは自動です。つまり、特定のイベントによってコピーが自動的にトリガーされます。この課題は、関数入力クリップボードまたは単に関数クリップボードと呼ばれる自動クリップバーの1つに焦点を当てています。 このクリップボードは、通常の入力取得機能への4つの最新の呼び出しへの入力を保存します。通常の関数は、MATLで最も一般的なタイプの関数です。入力取得は、関数が少なくとも1つの入力を取得することを意味します(入力を取得しない関数は、関数クリップボードによって考慮されません)。 これは、2つの通常の関数を使用する次の例で最もよく説明されます。 +、スタックから2つの数値をポップし、それらの合計をプッシュします。 U、1つの数字をポップし、その正方形をプッシュします。 例1: 3 2 + 6 + 12 4 U + + 結果を生成し39ます。コードは次のように解釈されます。 3または12スタックにプッシュされるなどの数値リテラル +入力をポップし、出力をスタックにプッシュするなどの関数。 関数呼び出しは、時系列で次のとおりです。 3 2 + 与える 5 5 6 + 与える 11 4 U 与える 16 12 16 + 28 11 28 +与える39。 クリップボードは、4つのリストのリストとして表示できます。各内部リストには、関数呼び出しへの入力が含まれ、最新の呼び出しが最初にあります。各内部リスト内では、入力は元の順序になっています。 そのため、コードを実行した後のクリップボードの内容は次のとおりです(Python表記): [[11, …
17 code-golf  number 

7
ニム乗算
バックグラウンド 多くのコードゴルフを行う場合は、ビット単位のXOR操作を知っている可能性があります。2つの整数が与えられると1、2つの入力が異なるビットにsを持つ別の整数が与えられます。したがって、たとえば、1010 XOR 0011 = 1001。 それはゲーム理論で非常に有用であることが判明し、「nim sum」として知られています。2つのゲームの合計がある場合(つまり、一度に1つのゲームで移動している場合)、位置の値は、個々のゲームの位置の値のnim合計です。 しかし、これをさらに一歩進めることができます。nimの追加とnimの乗算の適切な定義により、非負の整数からフィールドを形成できます。したがって、課題はゴルフニムの増殖です。 定義 Nim乗算は次の規則に従います 。Fermat 2乗n =(2 ^(2 ^ k))と任意の小さい数のnim積は通常の積です。 Fermat 2乗nとそれ自体のnim積は3n / 2です。 Nim乗算は、nim加算を介して分散します。 Nim乗算は可換および結合的です(nim加算と同様)。 乗法恒等式は1です(および加法恒等式は0です)。 非負の整数は、2の異なるべき乗のnimの合計として記述でき、2のべき乗は、異なるフェルマー数の積として記述できます。したがって、これは、すべての非負の整数のnim乗算を定義するのに十分です。 例 それはすべてかなり抽象的だったので、例を見ていきましょう。私が使用します+NIM加算(XOR)を表すとする*NIM乗算に。 6 * 13 = (4 + 2) * (8 + 4 + 1) = (4 + 2) * ((4 * 2) + 4 …
17 code-golf  math 

26
Elixir Array構文糖
Elixirでは、(リンクされた)リストは、headは何でもよく、tailはリストの残りのリストの形式[head | tail]であり、空のリストはこの唯一の例外です。[] リストは次のようにも書くことができる[1, 2, 3]と同等です[1 | [2 | [3 | []]]] あなたの仕事は、説明されているようにリストを変換することです。入力は常に、正規表現に一致する数字のみを含む有効なリスト(Elixir内)になり\[(\d+(, ?\d+)*)?\]ます。(各コンマの後にスペースが1つ)またはスペースなしで入力を行うことができます。出力は、(それぞれの前後にスペースが1つ|)あり、またはスペースなしです。 先行ゼロのある入力の場合、ゼロなしで出力することも、出力することもできます。 入力は、出力と同様、文字列として取得する必要があります(関数を記述する場合)。 例 [] -> [] [5] -> [5 | []] [1, 7] -> [1 | [7 | []]] [4, 4, 4] -> [4 | [4 | [4 | []]]] [10, 333] -> [10 | [333 …

19
順序文字列チェック
説明: 入力として文字列を指定し、それが英語の有効な序数かどうかを確認します。有効な場合は真理値を返し、そうでない場合は偽の値を返します。(@Arnauldによる提案。ありがとう。また@JoKingによる) 序数について知りたいユーザーの場合は、ここにアクセスしてください: https://www.mathsisfun.com/numbers/cardinal-ordinal-chart.html(提案:qwr) 可能な入力: 21st ---> true 12nd ---> false 1nd ---> false .... これはコードゴルフチャレンジであるため、各言語の最短コードが勝者となります。 例: console.log('12th' , true) // This evaluates to true console.log('1st' , true) // also evaluates to true console.log('21nd' , false) // returns false console.log('11st' , false) // returns false console.log('111199231923819238198231923213123909808th' , true) // true …

23
綴られたシリアル番号を並べ替える
2つ以上の等しい長さの2つ以上のスペルアウトされたシリアル番号のリストがある場合、たとえば [[ "three" , "one" , "four" ], [ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "five" , "eight" ]] 単語が表す数字でリストをソートします。 [[ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "one" , "four" …

4
クロスアルファベット文字
バックグラウンド ウィキペディアでこの非常に興味深いベン図を見ました:https ://simple.wikipedia.org/wiki/Alphabet#/media/File: Venn_diagram_gr_la_ru.svg ロシア語、ギリシャ語、ラテン語のアルファベットに共通するさまざまなアルファベットの文字(物理的形状)を示しています。 チャレンジ 表示されている3つのスクリプトのいずれかからの入力文字列(大文字のギリシャ文字、キリル文字、またはラテン文字)を指定すると、各言語に一致する文字列の割合を出力します。繰り返される文字は毎回カウントされます。 たとえば、FFLURSはすべてラテン語のみの文字であるため、出力はFFLURS is 100% Latin, 0% Cyrillic and 0% Greekです。 対照的に、TOX BEAM PHPは3つの言語すべてに現れる文字で完全に形成されるため、出力はTOX BEAM PHP is 100% Cyrillic, 100% Greek and 100% Latinです。 ルックアップテーブル ベン図は、以下の文字のソースです。 ラテン語のみ: J,G,S,D,Q,U,V,W,F,L,R ラテン語およびキリル文字: C, С ラテン語およびギリシャ語: I,Ι, N,Ν, Z,Ζ ギリシャ語とキリル文字 Φ,Ф, Π,П, Γ,Г, Λ,Л 3つすべて: A,B,E,O,M,K,T,X,Y,H,P (and equivalents in …

19
エルミート行列?
この課題では、複素数の処理や理解が必要ないことに注意してください。 すべての要素が2要素(Re、Im)整数リストである空でない正方行列が与えられた場合、これがエルミート行列を表すかどうかを決定(真理値/偽値または2つの一貫した値を与える)します。 入力は整数の3D配列であることに注意してください。複素数の2D配列ではありません。言語で3D配列を直接取得できない場合は、フラットリストを使用できます(それが役立つ場合は、n×nまたはn×n×2の形状)。 行列は、それ自身の共役転置に等しい場合、エルミート行列です。言い換えると、左上から右下の対角線上でそれを反転し、すべての2要素リーフリストの2番目の要素を無効にすると、入力行列と同じになります。反転と否定の順序は無関係であることに注意してください。したがって、最初に否定し、その後反転することができます。 ウォークスルーの例 この例では、読みやすくするために、余分な空白を含むJSONを使用しています。 [[ [2, 0] , [2, 1] , [4, 0] ], [ [2,-1] , [3, 0] , [0, 1] ], [ [4, 0] , [0,-1] , [1, 0] ]] 転置(NWを越えて反転-SE対角線): [[ [2, 0] , [2,-1] , [4, 0] ], [ [2, 1] , [3, 0] …

27
リストをすばやく再グループ化する
グループ化はリストを取り、それを等しい隣接要素の新しいリストに分割します。例えば [1,1,2,1,1] -> [[1,1],[2],[1,1]] これらのグループの長さを取得すると、整数の新しいリストが取得されます [1,1,2,1,1] -> [2,1,2] あなたの仕事は、正の整数のリストを受け取るプログラムを作成し、結果のリストに単一の要素が含まれる前にグループ化および長さ化できる回数を見つけることです。たとえば、リスト[1,2,3,3,2,1]を4回再グループ化できます [1,2,3,3,2,1] [1,1,2,1,1] [2,1,2] [1,1,1] [3] これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いでしょう。 テストケース [1,2,3,3,2,1] -> 4 [1,2,3,4,5,6,7] -> 2 [1,1,1,1,1,1] -> 1 [2] -> 0 [1,2,4] -> 2 [1,2,2,1,1,2] -> 4 [1,2,2,1,1,2,1,2,2] -> 5 [1] -> 0

7
1Dホッピング配列迷路
触発さ我々の塔は、ホッピングんとに関連した2D迷路マイナス1D 前書き あなたの仕事は、指定されたルールに従って配列迷路から抜け出すための最短経路を見つけることです。 チャレンジ n個の要素を持つ1D配列aは、n 個の点で構成される迷路と見なすことができます。インデックスkの点は、一方向にk + a [ k ]およびk - a [ k ] の点に接続されます。つまり、インデックスkのポイントからa [ k ]ステップだけ正確に前後にジャンプできます。配列の境界外のインデックスを持つポイントは、迷路外と見なされます。 これを説明するために、次の配列を検討してください。 [0,8,5,9,4,1,1,1,2,1,2] 現在5番目の要素にいる場合、要素は4であるため、9番目の要素まで4ステップ進むか、1番目の要素まで4ステップ戻ることができます。後者の場合、要素0になります。これは、それ以上移動できないことを示します。前者を実行すると、9番目の要素が2であるため、11番目の要素(再び2)にホップすることを選択できます。その後、「13番目の要素」に再びホップできます。配列し、迷路への出口と見なされます。 したがって、真ん中の要素から開始する場合、迷路から抜け出すための1つの方法は、1ステップ戻る、4ステップ進む、2ステップ進む、そして再び2ステップ進むこと[-1,4,2,2]です。これは配列として表すことができます。または[4,8,10,12]、すべての中間点と最終点のゼロベースのインデックスを記録する配列(1ベースのインデックスでも問題ありません)、または単に記号で表現できます[-1,1,1,1]。 低指数の端から迷路を脱出することも大丈夫です。 最初の表記を使用して同じ要素から開始すること[1,1,1,2,2]も解決策ですが、4つではなく5つのステップがあるため最適ではありません。 タスクは、配列の迷路から抜け出すための最短パスを見つけ出し、パスを出力することです。最適なパスが複数ある場合は、それらの一部またはすべてを出力できます。解決策がない場合は、有効なパスから識別可能な偽の値を選択して出力する必要があります(出力をまったく生成しなくてもかまいません)。 簡単にするために、配列内の要素の数は常に奇数であり、常に真ん中の要素から始めます。 テストケース テストケースはさまざまな形式の出力を示していますが、これらに限定されません。 Input Output [0,8,5,9,4,1,1,1,2,1,2] [-1,4,2,2] [2,3,7,1,2,0,2,8,9] [2,9] (or [2,-5] or [[2,9],[2,-5]]) [0,1,2,2,3,4,4,4,3,2,2,3,0] [1,-1,1,1] [0,1,2,2,4,4,6,6,6,6,6,4,2,1,2,2,0] [] スペック 関数または完全なプログラムを作成できます。 配列には非負の整数のみが含まれます。 任意の標準フォームを介して入力と出力を行うことができますが、使用するフォームを回答で指定してください。 これはcode-golfであり、最小バイト数が勝ちます。 いつものように、デフォルトの抜け穴がここに適用されます。

14
タワーホッピングをします
仕事 負でない整数aの配列を指定すると、位置0から開始して配列の「外側」にジャンプするために必要な右方向ジャンプの最小数を決定します。そうしない場合はゼロ/ nullを返します。 インデックスからのジャンプiは、配列インデックスの最大増加分であると定義されていますa[i]。 外部へのジャンプは、ジャンプの結果のインデックスiが配列の範囲外であるジャンプです。そのため、1ベースのインデックス付けi>length(a)では、0ベースのインデックス付けでは、i>=length(a)。 例1 考慮してくださいArray = [4,0,2,0,2,0]: Array[0] = 4 -> You can jump 4 field Array[1] = 0 -> You can jump 0 field Array[2] = 2 -> You can jump 2 field Array[3] = 0 -> You can jump 0 field Array[4] = 2 -> You …

8
共役順列
サイズnの順列は、最初のn個の正の整数の並べ替えです。(各整数が一度だけ表示されることを意味します)。順列は、サイズnのアイテムのリストの順序を変更する関数のように扱うことができます。例えば (4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"] したがって、順列は関数のように構成できます。 (4 1 2 3)(2 1 3 4) = (4 2 1 3) これは多くの興味深い特性をもたらします。今日私たちは共役に焦点を合わせています。置換yとx(両方ともサイズn)は、置換gとg -1(サイズnも)がある場合に限り共役です x = gyg-1 そしてGGは-1恒等置換(最初に等しいn個の適切な順序で番号)。 あなたのタスクは、標準入力メソッドを介して同じサイズの2つの順列を取得し、それらが共役かどうかを判断することです。2つの一貫した値の1つを出力する必要があります。1つは共役で、もう1つは共役ではありません。 これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いでしょう。 共役順列については多くの定理があり、自由に使用できます。幸運と幸せなゴルフです。 入力は、上記のような順列を表す値の順序付けされたコンテナ(1-nまたは0-n)として、または順序付けされたコンテナを使用して順列を実行する関数として受け取ることができます。関数を使用することを選択した場合、事前定義された名前ではなく、引数として使用する必要があります。 テストケース (1) (1) -> True (1 2) (2 1) -> False (2 1) …

23
文字列から重複を削除する
この控えめなStackOverflow質問に触発されました。 アイデアはシンプルです。文字列と文字列の配列を指定すると、最初の文字列以外の入力文字列から、配列内の単語のインスタンスをすべて削除します(大文字と小文字は無視します)。単語は、単語の一部ではなく、入力文字列内の単語全体と一致する必要があります。 たとえば、"A cat called matt sat on a mat and wore a hat A cat called matt sat on a mat and wore a hat", ["cat", "mat"]出力する必要があります"A cat called matt sat on a mat and wore a hat A called matt sat on a and wore a hat" 入力 …
17 code-golf  string 

23
バイナリ部分文字列
BMO2 2009の 4番目の問題に触発されました。 入力またはパラメータとして正の整数nを指定すると、nのバイナリ展開でブロックとしてバイナリ表現が発生する正の整数の数を返します。 たとえば、13-> 6は、バイナリの13が1101であり、サブストリングがあるため1101, 110, 101, 11, 10, 1です。ゼロで始まる2進数はカウントせず、ゼロ自体もカウントしません。 テストケース 13 -> 6 2008 -> 39 63 -> 6 65 -> 7 850 -> 24 459 -> 23 716 -> 22 425 -> 20 327 -> 16 あなたにはかかりますnは、次のいずれかのよう: 整数 バイナリ表現の真偽値のリスト バイナリ表現の文字列 10を基数とする文字列(なぜこれを行うのかはわかりませんが) コードをできるだけ短くしてください。
17 code-golf  binary 

9
Cleanでのゴルフのヒント
クリーンでゴルフをするための一般的なヒントは何ですか?一般的なゴルフの問題をコード化するのに適用でき、少なくともCleanに特定のアイデアのみを投稿してください。 クリーンについて聞いたことがない場合は、こちらで詳細を確認できます。 または、チャットルームに参加できます。
17 code-golf  tips 

1
Moufangループのカウント
ループは非常に単純な代数構造です。タプル(G、+)で、Gは集合で、+は二項演算子G×G→Gです。つまり、+はGから2つの要素を取得し、新しい要素を返します。また、オペレーターは2つの特性を満たす必要があります キャンセル:すべての場合、AとBにGのユニークな存在のxとyとにGよう a + x = b y + a = b アイデンティティ:ある電子でGのすべてのためのように、AでGは、 e + a = a a + e = a グループの概念に精通している場合、ループは連想プロパティを持たない単なるグループであることに気付くかもしれません。 ループは非常に単純なので、人々はより多くのルールを追加して、より興味深い新しい構造を作成することを好みます。そのような構造はMoufangループもことFORALL満たす次の4人のアイデンティティをループであり、X、Y及びZでG z + (x + (z + y)) = ((z + x) + z) + y ((y + z) + x) + z = y + …

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