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

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

12
圧縮されたBrain-Flakを展開する
このチャレンジは、2018年4月のLotMチャレンジの一部として、およびBrain-flakの2回目の誕生日に投稿されました Brain-Flakプログラムをエンコードする最も効率的な方法は何かを考えていました。有効な文字は8つしかないため、行うべき明らかなことは、各文字を3ビットシーケンスにマップすることです。これは確かに非常に効果的ですが、それでも非常に冗長です。Brain-flakコードには、エンコードを短縮するために利用できる機能がいくつかあります。 ニラッドはすべて2つの一致するブラケットで表され、実際には2ではなく単一の情報単位として機能します。各ブラケットを1バイト文字に置き換えると、データを失うことなくエンコードがはるかに小さくなります。 これはそれほど明白ではありませんが、モナドの終了バイトも冗長です。'?'次のスニペットで文字が何を表すか推測できると思いますか? {(({}?<>?<>? 入力が有効なbrain-flakコードであると仮定した場合、それらの疑問符ごとに1つのオプションしかありません。これは、閉じるモナド文字を明確に使用して、すべての閉じ括弧を表すことができることを意味します。これには、文字セットを小さく保つという追加の利点があります。これは、ハフマンエンコーディングを使用する場合に非常に役立ちます。以来近いモナドの文字が最も可能性の高いワイドマージンによって最も一般的な文字になります、非常効率的である、単一ビットで表現することができます。 これらの2つのトリックにより、次のアルゴリズムを介してbrain-flakコードを圧縮できます。 モナドのすべての閉じ括弧をに置き換え|ます。または、言い換えると、開始一致の前にないすべての閉じ括弧をバーに置き換えます。そう... (({})<(()()())>{}) になるだろう (({}|<(()()()||{}| すべてのニラッドを閉じブラケットで置き換えます。したがって、何も含まれていない一致した括弧は、次のマッピングを使用します。 () --> ) {} --> } [] --> ] <> --> > これで最後の例は次のようになります。 ((}|<()))||}| 末尾の|文字を削除します。バーの総数は({[<文字の総数と等しくなければならないことがわかっているため、最後にバーがない場合は推測できます。次のような例: ({({})({}[()])}) になるだろう ({(}|(}[) 今日の課題は、このプロセスを逆にすることです。 文字のみを含む圧縮されたbrain-flakの文字列が与えられた(){}[]<>|場合、元のbrain-flakコードに展開します。入力は常に有効なブレインフラックに拡張されると想定できます。これは、入力のプレフィックスに文字を|超える({[<文字が含まれないことを意味します。 入力には末尾の|文字は含まれません。これらはコンテキストから推測する必要があります。 通常どおり、完全なプログラムまたは関数のいずれかを送信でき、入出力形式は許容されます。また、これはcode-golfであるため、ソースコードの長さ(バイト単位)によってコードがスコアリングされます。スコアが小さいほど優れています。 テストケース ここにいくつかのテストケースがあります。さらに必要な場合は、このpythonスクリプトとBrain-Flak Wikiを使用して独自のテストケースを生成できます。これは、これらのテストケースの大部分が由来する場所です。 #Compressed code #Original code ()))) (()()()()) ([([}()||||(>||{(})|>|}{((<}|||>}|}>} ([([{}(())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{} ({(}|(}[)|||} ({({})({}[()])}{}) (((()))||(](((}}||(}([(((}))||||(]((}}|}|}}|||]||]|[))||(}))|}(}|(}]]|} ((((()()()))([]((({}{}))({}([((({}()())))]([](({}{}){}){}{})))[]))[])[()()])({}()()){}({})({}[][]){}

8
相互攻撃の女王
8x8のチェス盤を2つの異なる値で表し、1つの値を空の正方形、もう1つの値をクイーンとします。次の例では、空の四角形として0を使用し、クイーンとして1を使用します。例えば: によって与えられます 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 …

1
三次元チェス
誰かの不可解な決定を守るために、人々はしばしば、その人は誰の頭をも越えて「3次元チェス」をしていると言います。さあ、3次元のチェスをするチャンスです! ルール 3Dチェスには多くのバリエーションがありますが、この課題のために私は自分で作成しました。私のバージョンは通常のチェスと同じですが、ピースが正方形ではなく立方体の中にあり、動きの次元が増えている点が異なります。この挑戦を簡単にするために、ポーンとキャスティングがありません。 ピースムーブメント (コンパスの方向は、標準のチェス盤で発生する動きを指し、上下は3Dチェス盤で垂直に動くことを指します)。 キング -与えられたターンに行くことができる26の正方形を持っています:N、NE、E、SE、S、SW、W、NW。上、下、上/下+コンパス方向の1つ。 女王 -王と同じ方向に移動できますが、彼女が望む方向に移動できます。 ルーク -6方向に移動できます:N、E、S、W、上、下、 ビショップ -8つの三角形の移動方向:NE +上/下、SE +上/下、SW +上/下、NW +上/下 ナイト -2つのスペースを1つの軸に移動し、次に1つのスペースを別の軸に移動します。通常のチェスのように、ナイトは他の駒を飛び越えることができる唯一の駒です。 ピーステスター このスニペットを使用して、3Dボード上でさまざまなピースがどのように動くかを確認します(ヒント:*Testピースからの絶対距離に基づいて、正方形が有効な動きであるかどうかをすばやく判断するためのJS の機能を確認してください): const color = "Black"; const pieces = ["N","B","R","Q","K"]; const urls = ["https://image.ibb.co/gyS9Cx/Black_N.png","https://image.ibb.co/dknnzc/Black_B.png","https://image.ibb.co/kb3hXx/Black_R.png","https://image.ibb.co/hGO5kH/Black_Q.png","https://image.ibb.co/jApd5H/Black_K.png"]; var dragPiece; var size = 3; var index = 0; function start() { Array.prototype.add = function(a) …

19
単純な文字列の反射
文字列内の文字のリフレクションを定義することから始めましょう: のようにスペースのない明確な小文字のアルファベットの文字列が与えられた場合、文字列abcdefg内の文字の反射をc(他の文字の順序を変更せずに)文字列内の新しい場所に移動するように定義しますその右側は、左側の文字数です。 したがって、文字の反映はcにabcdefgなりますabdecfg。説明:の右側にc4つの文字があり、現在、の左側に4つの文字がありcます。 さらにいくつかの例: 文字eを反映すると文字myfriend列が形成されますmyefrind 文字aを反映axyzすると、文字列が形成されますxyza。 文字bを反映abcすると、文字列が形成されますabc。 文字dを反映dすると、文字列が形成されますd。 文字eを反映efすると、文字列が形成されますfe。 詳細については、またはいくつかのテストケースを試してみることを、ここに私はC ++で書いた(やや長い)プログラムです。 チャレンジ 明確に小文字の文字列が与えられた場合、各文字をアルファベット順に調べて、文字列に「反映」します。 明確化:文字列の文字はfromでa-z、スペースはなく、文字は一意であり、文字列は少なくとも1文字、最大26文字です。 例 入力:dcba。出力:dcba。 理由:最初aに、文字列内の文字がアルファベットの中で最初に来るように反映します。取得しadcbます。次に、bアルファベットの次の文字を反映して、を取得しbadcます。その後、反映c取得するにはcbad、次にd取得しますdcba。 入力:myface。出力:fyecma。 ヒント:文字を順番に確認しa, c, e, f, m, yます。 入力:a。出力:a。 入力:acb。出力:bac。 入力:cwmfjordbankglyphsvextquiz。出力:ieabhqzugdltkfnvpjxsormycw。 得点 入力と出力は、任意の便利な方法で指定できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 投稿後約100時間を受け入れます。 現在の勝者 コードスニペットを表示 <style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list …
26 code-golf  string 

1
ジョリーゲリマンダリング
バックグラウンド 米国には、ゲリマンダリングに対する独特の愛情があります。特定の投票結果を予測するための選挙区の意図的な操作です。つい最近、最高裁判所に持ち込まれたゲリマンダー事件がありました。ジェリーマンダリングは、特に人種に関連する場合、違法と判断され、地区の路線を変更する必要が生じます。 自治体の長方形の地図(2次元配列)を指定すると、地区の線を描画して、パーティが最も表現しやすくなります。つまり、ゲリマンダーになります。すべての自治体には2つの政党が0あり1ます。マップは、いずれか0または1その上の正方形で構成されます。以下にマップの例を示します。 チャレンジ マップを地区にグループ化して、1パーティが少なくとも入力で指定された地区の数を取得できるようにします。 入力 入力は、マップ、描画する地区の数、および1パーティーが勝つ必要がある地区の最小数(最小スコア)で構成されます。 出力 出力は、地区の地図になります。各地区はアルファベットの大文字で一意に構成されます。はい、これは26以上の地区がないことを意味します。 入力されたパーティが十分な地区に勝つ可能性のある出力がない場合、次のいずれかです 印刷してみました... 選挙結果により党が取り返しのつかないほど負傷したため、致命的なエラー または両方 ルール(非常に重要) すべての地区は連続している必要があります 地区には他の地区がない場合があります 各地区には、少なくとも4つのノードが必要です。入力はルールと一致します。つまりnumber_of_districts * 4、マップには少なくともノードがあります。 各政党のスコアは、政党が過半数を占める地区の数です 地区の0sと1sの数が同じ場合、どちらの当事者もその恩恵を受けません 通常の不正行為のルール これはcode-golfなので、バイト単位の最短コードが優先されます。 テストケース 1. Input 1. Output 2. Input 2. Output 3. Input 3. Output districts: 5 Image and map districts: 3 Image below districts: 3 fatal error min …

30
直交ステップ
2Dマトリックス内をナビゲートすることは一般的な問題です。私たちは何度も見てきましたが、また見ます。それでは、将来の私たちを助け、2Dマトリックスで可能な8つのステップすべてを生成する最短のソリューションを開発しましょう。 チャレンジ コードは、次の8ペアの-1,0,1を任意の順序で出力する必要があります。 (0,1) (0,-1) (1,0) (-1,0) (1,1) (1,-1) (-1,1) (-1,-1) ルール 入力はありません。 出力順序は関係ありません 出力は柔軟です。数字のペアは区別できる必要があります これはcode-golfなので、バイト単位の最短回答が勝ちます

22
希釈整数和
正の整数は、2進展開に2ビットを挿入することで希釈できます0。これは、- nビット数にn-1希釈があることを意味し、必ずしもすべてが異なるわけではありません。 たとえば、12(または1100バイナリで)、希釈は 11000 = 24 ^ 11000 = 24 ^ 10100 = 20 ^ この課題では、元の数を除いて、すべての希釈の合計を取ります。の場合12、24, 24, 20結果の合計を取得する68ため68、の出力もそうである必要があります12。 チャレンジ n > 1入力として正の整数を指定すると、上記で説明したように希釈された合計を出力/返します。 例 in out --- --- 2 4 3 5 7 24 12 68 333 5128 512 9216 ルール 入力と出力は、言語のネイティブ整数型に適合すると仮定できます。 入力と出力は、任意の便利な形式で指定できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

30
遅延ドロップソートを実装する
この課題は、すでにドロップソートについて説明しています。しかし、私はちょっと怠け者だと私は本当に私の唯一の配列は、もう少しソート以前よりもする必要があり、それはソートする必要はありませんすべての方法を。 ドロップソートでは、その前の要素よりも小さいすべての要素をドロップします。レイジードロップソートでは、厳密に先行する要素よりも小さい要素をすべて削除します。 以下に例を示します。次の配列を検討してください。 8 6 9 9 7 2 3 8 1 3 前の要素よりも小さい要素をすべてマークしましょう。 8 6 9 9 7 2 3 8 1 3 ^ ^ ^ ^ どちら3もマークされていないことに注意してください8。それらはすべて、左側の単一の要素よりも大きくなっています。 アルゴリズムを完了し、マークされた要素を削除すると、次のようになります。 8 9 9 3 8 3 それは基本的にもっとソートされているように見えます。ちょっと。私は怠け者。 あなたがすでに推論したかもしれないあなたの仕事は、このアルゴリズムを実装することです。 入力は1〜9の少なくとも1つの正の整数の配列であるため、数字のストリングも使用できます。 これはcode-golfで、最少バイトが勝ちます! 追加のテストケース: 1 1 1 2 3 1 2 3 5 …

24
ファイル許可
ファイル許可 コードゴルフ UIL-コンピューターサイエンスプログラミング2018年地区の無料回答質問「カーラ」からの適応。 前書き UNIXライクなオペレーティングシステムでは、各ファイル、ディレクトリ、またはリンクは「グループ」のメンバーである「ユーザー」によって「所有」され、「」などの10文字の文字列で表される特定の「許可」を持ちます。 drwxrwxrwx」。最初の文字は「d」、「-」、または「l」(ディレクトリ、ファイル、またはリンク)であり、「読み取り、書き込み、実行」権限を示す「rwx」値のセットが3つ続きます。最初のセットはユーザーの権利、中央のセットはグループの権利、3番目はそのオブジェクトに対する他の全員の権利です。 これらの権利のいずれかに対して拒否された許可は、「r」、「w」、または「x」の代わりに「-」で表されます。たとえば、サンプルのディレクトリパーミッション文字列は「drwxr--r--」で、ユーザーには完全なディレクトリ権限を示しますが、グループメンバーおよびその他すべてには「読み取り専用」権限を示します。 各「rwx」の組み合わせは、8ビット値(0〜7)で表すこともできます。最上位ビットは読み取り許可、次の最上位ビットは書き込み許可、最下位ビットは実行許可を表します。 チャレンジ 文字「D」、「F」、または「L」で構成され、その後に664などの3桁の8進整数値が続く4文字のコード文字列がある場合、許可値を表す結果の10文字の文字列を出力します示された。 入力 プログラムまたは関数は、標準入力(4文字が入力され、オプションで改行が続く)から入力を読み取るか、入力を引数として渡すことができます。 プログラムは大文字または小文字の入力を受け入れますが、一貫している必要があります(すべての入力が大文字であるか、すべての入力が小文字である)。 出力 プログラムは、上記で指定した正確な形式で示された許可値を表す結果の10文字の文字列を印刷する必要があります。末尾の空白は許可されます。 テストケース In:F664Out:-rw-rw-r-- In:D775Out:drwxrwxr-x In:L334Out:l-wx-wxr-- In:F530Out:-r-x-wx--- In:D127Out:d--x-w-rwx スコアリングとルール 標準の抜け穴は禁止されています。 標準ルールが適用されます。 コードをテストするためのリンクと説明を提供してください。 これはcode-golfなので、バイト単位の最短回答が勝ちです!
26 code-golf 

12
三目並べの勝者を決定する(ラウンドベース)
いくつかのコードゴルフをプレイしましょう! 課題は、三目並べゲームの勝者を見つけることです。 これは、明確な勝者が1人いるボードを提供することで何度も行われてきましたが、ここにひねりがあります。 セルには次のように番号が付けられます。 1|2|3 -+-+- 4|5|6 -+-+- 7|8|9 そのように正確に9つの動きの配列を取得します: {3, 5, 6, 7, 9, 8, 1, 2, 3} これは次のように解析されます。 プレーヤー1がセル3をマークする プレーヤー2がセル5をマークする プレーヤー1がセル6をマークする プレーヤー2がセル7をマーク プレーヤー1がセル9をマークする プレイヤー1が勝ちました 注:1人のプレーヤーが勝った後もゲームは停止しません。負けたプレーヤーは勝ったプレーヤーの後に3連勝することができますが、最初の勝ちのみがカウントされます。 あなたの仕事は、入力として9個の数字を取得し、勝ったプレイヤーと勝ったラウンドを出力することです。誰も勝てない場合は、選択した定数を出力します。任意の標準的な平均/形式で入力を受け取り、出力を提供できます。 楽しむ! 要求されたいくつかの例: {2,3,4,5,6,7,1,8,9} => Player 2 wins in round 6 {1,2,4,5,6,7,3,8,9} => Player 2 wins in round 8 {1,2,3,5,4,7,6,8,9} => Player 2 …

18
私は「Redivosite」番号ですか?
Redivositeは、この課題の唯一の目的のために考案されたポルトマン語です。リダクション、ディビジョン、コンポジットの組み合わせです。 定義 整数N> 6が与えられた場合: Nが素数の場合、NはRedivosite番号ではありません。 Nが複合の場合: N 'が素数になるまでN' = N / d + d + 1を繰り返し計算します。dはNの 1より大きい最小除数です Nは場合Redivosite数であり、最終値のみならばNは」の除数であり、N 以下は、最初の100のRedivosite番号です(投稿時にはOEISエントリはありません): 14,42,44,49,66,70,143,153,168,169,176,195,204,260,287,294,322,350,414,462,518,553,572,575,592,629,651,702,726,735,775,806,850,869,889,891,913,950,1014,1023,1027,1071,1118,1173,1177,1197,1221,1235,1254,1260,1302,1364,1403,1430,1441,1554,1598,1610,1615,1628,1650,1673,1683,1687,1690,1703,1710,1736,1771,1840,1957,1974,2046,2067,2139,2196,2231,2254,2257,2288,2310,2318,2353,2392,2409,2432,2480,2522,2544,2635,2640,2650,2652,2684,2717,2758,2760,2784,2822,2835 例 N = 13:13は素数なので、13はRedivosite番号ではありません N = 32:32/2 + 3 = 19; 19は除数でも32でもないため、32はRedivosite番号ではありません N = 260:260/2 + 3 = 133、133 / 7 + 8 = 27、27 / 3 + 4 = …

29
回転合計
入力として正の整数を含む正方行列を取得し、行列の「回転和」を計算します。 回転合計: 元の行列と同じ行列を90、180、270度回転させた合計を取ります。 マトリックスが次のとおりであると仮定します。 2 5 8 3 12 8 6 6 10 回転した合計は次のようになります。 2 5 8 8 8 10 10 6 6 6 3 2 3 12 8 + 5 12 6 + 8 12 3 + 6 12 5 = 6 6 10 2 3 6 8 5 …

30
ちょっと上へ!
整数Nを指定して、次の手順を実行します(例として9を使用)。 入力Nを受信します。(9) Nをbase10からbase2に変換します。(1001) すべてのビットを1ずつ増やします(2112) 結果をbase3として扱い、それをbase10に変換します。(68) 結果を返す/出力します。 入力 合理的な番号形式で受け取ることができます。 N> 0の場合のみ処理する必要があります。 出力 数値または文字列として返すか、に出力しstdoutます。 ルール これはcode-golfで、バイト単位の最短コードが勝ちです。 デフォルトの抜け穴は禁止されています。 テストケース 1 -> 2 2 -> 7 5 -> 23 9 -> 68 10 -> 70 20 -> 211 1235 -> 150623 93825 -> 114252161

18
じゃんけんで繰り返してはいけない
CodegolfがRock-Paper-Scissorsトーナメントを開催するとの噂があるので、スクエアフリーワードのトピックを調べます。手紙で作られた言葉はR、P、Sである無平方それが二回繰り返し、そのシーケンスが含まれていない場合。つまり、単語は次のように書くことはできません a x x b ここで、aおよびb任意の長さの単語であり、x長さの単語すべての文字からなる少なくとも一つですR、P、S。 仕事 生成するプログラムを書く正方形無文字の単語R、P、S長さのn数を1 <= n <= 10入力としたが。 例 たとえば、長さ3 の正方形のない単語は RPR、RSR、RPS、RSP、SPS、SRS、SRP、SPR、PRP、PSP、PSR、PRS 長さ4のものは RPRS、RPSR、RPSP、RSRP、RSPR、RSPS、PRPS、PRSR、PRSP、PSRP、PSRS、PSPR、SRPR、SRPS、SRSP、SPRP、SPRS、SPSR そして、例えば、SPSPまたはPRPR正方形ではないことに注意してください ルール これはcodegolfで、最短のプログラムが勝ち、標準的な抜け穴が閉じられます。 単語を印刷したり、メモリに作成したりできます。 プログラムは関数として書かれている場合があります。 参照資料 スクエアフリーの単語に関するウィキペディアのエントリ 指定された長さの正方形のない三項単語の数はhttps://oeis.org/A006156にあります 関連:任意長の3項Squarefreeワード

30
非ゼロデジタル製品の課題
もともと乗法的デジタルルート チャレンジ 基本的にタイトルが言うことをする 方法 標準入力メソッドのいずれかで正の整数1 <= N <= 100000000が与えられた場合、 ゼロを無視してすべての数字を乗算します。 例:数字を入力して361218402ください: 3* 6=18 18* 1=18 18* 2=36 36* 1=36 36* 8=288 288* 4=1152 1152* 1 (ゼロを無視するか、1に変換します) =1152 1152* 2=2304 の出力361218402は2304 テストケース 1 => 1 他のすべての数字> 0 =>それ自体 10 => 1 20 => 2 100 => 1 999 => 729 21333 …

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