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

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

11
グリッド交差シーケンス
グラフ用紙を使用して、mユニットを右に移動し、nユニットを上に移動する傾斜線を引くと、n-1水平m-1グリッド線と垂直グリッド線が順番に交差します。そのシーケンスを出力するコードを書きます。 たとえば、次のようにm=5なりn=3ます。 おそらく関連:ユークリッドリズムの生成、フィボナッチタイリング、FizzBu​​zz 入力:m,n比較的素数である2つの正の整数 出力:交差を2つの異なるトークンのシーケンスとして返すか印刷します。例えば、文字列とすることができるHとV、のリストTrueとFalse、または0のと1別の行に印刷されたの。トークンが常に同じであり、たとえば可変数のスペースではない限り、トークン間にセパレーターを使用できます。 テストケース: 最初のテストケースでは、空の出力が得られるか、まったく出力されません。 1 1 1 2 H 2 1 V 1 3 HH 3 2 VHV 3 5 HVHHVH 5 3 VHVVHV 10 3 VVVHVVVHVVV 4 11 HHVHHHVHHHVHH 19 17 VHVHVHVHVHVHVHVHVVHVHVHVHVHVHVHVHV 39 100 HHVHHHVHHVHHHVHHVHHHVHHVHHHVHHHVHHVHHHVHHVHHHVHHVHHHVHHHVHHVHHHVHHVHHHVHHVHHHVHHVHHHVHHHVHHVHHHVHHVHHHVHHVHHHVHHHVHHVHHHVHHVHHHVHHVHHHVHH 形式で(m,n,output_as_list_of_0s_and_1s): (1, 1, []) (1, 2, [0]) (2, 1, [1]) (1, …

15
Insta-Name…コーダーを追加するだけです!
英語では、発音可能ナンセンス文字の組み合わせを作るための確実な方法は、例えば、完全にアウト子音・母音のペアのそれを作るためにある呉 KO PA ヘクタール、または、私 FA RO、子音が続く、最初の母音。 チャレンジ: ユーザーが指定した文字数を指定すると、この原則を使用してランダムな名前を作成するプログラムまたは関数を作成します。とても簡単です。 入力: 出力で必要な文字数を指定する2以上の整数。入力は、STDIN、コマンドライン引数、または関数引数から取得できます。 出力: ランダムに選択された子音と母音のペアを含む、指定された長さの文字列。STDOUTまたは最も近い代替に出力するか、関数の場合に返すことができます。 ルール: 英語のアルファベットの各子音は、各ペアの最初の文字に対して選択される確率が等しくなければならず、英語のアルファベットの各母音は、各ペアの2番目の文字に対して選択される確率が等しくなければなりません。 文字のペアを繰り返すことができます。 これは名前なので、最初の文字は大文字にする必要があります。 入力が奇数の場合、名前でランダムに選択された文字のペアの末尾にyまたはhを追加する必要があります。yまたはhの選択もランダムにする必要があります。 標準的な抜け穴は許可されていません。 バイト単位の最小コードが優先されます。 レターの定義: 子音: bcdfghjklmnpqrstvwxyz 母音: aeiou I / Oの例: Input: 6 Output: Mefaro Input: 9 Output: Wukohpaha 楽しい!
17 code-golf  random  word 

6
原始準完全数を見つける
半完全数 半完全/擬似完全数は、その除数の一部またはすべての和(それ自体を除く)に等しい整数です。すべての約数の合計に等しい数は完全です。 Divisors of 6 : 1,2,3 6 = 1+2+3 -> semiperfect (perfect) Divisors of 28 : 1,2,4,7,14 28 = 14+7+4+2+1 -> semiperfect (perfect) Divisors of 40 : 1,2,4,5,8,10,20 40 = 1+4+5+10+20 or 2+8+10+20 -> semiperfect 原始的 原始半完全数は、半完全除数のない半完全数です(それ自体は除く:)) Divisors of 6 : 1,2,3 6 = 1+2+3 -> primitive Divisors of …

29
n番目の三項
n番目の3項を、nを返し、次の形式の3項として定義します。 1 ? 2 ? 3 ? n - 1 ? n : 0 : 0 : 0 # n - 1 zeroes 入力nを与えてn番目の3項を出力または返す関数または完全なプログラムを作成します。コードゴルフ。 テストケース 0 #=> undefined behaviour 1 #=> 1 2 #=> 1 ? 2 : 0 3 #=> 1 ? 2 ? 3 : 0 : 0 …
17 code-golf  string 

3
Pythonでユーザー入力を取得するための短い方法はありますか?
これは挑戦ではありません。19バイト未満のpython(2または3)の2つの別個の変数にユーザー入力を取得することが可能なのかどうか疑問に思っています。これらはすべて私が得ることができる最短です: a,b=input(),input() a=input();b=input() (newline replaced with semicolon for readability) i=input;a,b=i(),i() これを行う短い方法はありますか?
17 code-golf  tips  python 

8
地震の分析
バックグラウンド の ランダムドミノオートマトンは、セルオートマトンに触発された地震のためのおもちゃのモデル、です。この課題におけるタスクは、このモデルの単純化されたバージョンをシミュレートし、そこからデータを収集することです。 オートマトンはビット配列Aで定義され、k地震が発生する可能性のある断層線を表します。配列は境界で折り返されます。状態とA[i] = 0は、位置iがリラックスしていること、および興奮しA[i] = 1ていること、またはエネルギーが蓄積されていることを意味します。各タイムステップで、配列の1つの位置がランダムに均一に選択されます。その位置が緩和されると、興奮します(潜在的なエネルギーがシステムに追加されます)。その位置がすでに興奮している場合、それは地震を引き起こし、選択された位置とそれに接続されているすべての興奮した位置は再びリラックスします。リラックスする興奮した位置の数は、地震の大きさです。 例 配列を考える 100101110111 ランダムプロセスが左から2番目のビットを選択した場合、配列は次のように更新されます。 110101110111 ^ (でマークされた選択ビットは、以降^)でした0。次に、左から4番目のビット(分離1)を選択すると、マグニチュード1の地震がトリガーされ、ビットが0再び設定されます。 110001110111 ^ 次に、右から2番目のビットを選択すると、マグニチュード5の地震がトリガーされます。 000001110000 ^ 1選択されたものと同じ「クラスター」内のすべてのsは地震の一部であり、配列は境界で折り返されていることに注意してください。 タスク 入力として2つの正の整数kとを取りt、タスクはすべてのsのt初期の長さのk配列から開始して、タイムステップのランダムドミノオートマトンをシミュレートすることです0。出力は整数のリストLでkあり、L[i](1から始まるインデックス付けで)マグニチュードの地震の数が含まれますiシミュレーション中に発生したます。出力から末尾のゼロを削除できます。 入力k = 15およびについてt = 1000、いくつかの代表的な出力は [117, 97, 45, 26, 10, 5, 3, 1, 3, 0, 0, 0, 0, 0, 0] [135, 91, 58, 21, 8, 2, 2, …

7
Kでのゴルフのヒント
Kは、アーサー・ホイットニーが設計したAPLファミリーのプログラミング言語です。公式の通訳者はクローズドソースで商用ですが、ワークスペースの制限が32ビットのアドレス空間に制限された試用版(コードゴルフでは問題になりません)は、Kx Systemsの Webサイトで見つけることができます。kdb +データベースの一部としてバンドルされているこのバージョンは、通称「K4」と呼ばれています。K3に基づいたKonaや、K5に基づいてブラウザベースのREPLを備えたoKという独自のインタープリターを含む、オープンソースのK実装もあります。 Kx SystemsにはK4 / kdb + / Q情報を含むwikiがあり、Kona GitHubページには優れた参考資料のコレクションもあります。私はoK / k5のマニュアルを書き始めました。これは役に立つリファレンスになるかもしれません。 同様JとAPL、Kは非常に簡潔で強力な言語であり、多くの場合、コードゴルフに示す良いを作ることができます。発見したヒント、トリック、イディオムを共有してください。Kを試していない場合は、試してみてください。回答ごとに1つのヒントを投稿してください。
17 code-golf  tips  k 

3
氷山に取り残された科学者シール
前書き アザラシの家族は、北極圏の氷山に取り残されています。氷山には無線送信機があり、アザラシが助けを求めるために使用できます。ただし、無線送信機の操作方法を知っているのはパパシールだけです。さらに悪いことに、この時期の氷は非常に滑りやすいので、アザラシが別のアザラシにぶつかったり、氷山の端から滑り落ちたりするまで、アザラシが制御不能に滑り、パパアザラシが無線送信機に到達するのが非常に難しくなります。幸いなことに、アザラシの1人はコンピューター科学者であるため、彼女はパパアザラシを無線送信機に操作する方法を理解するためのプログラムを書くことにしました。氷の上にはプログラムを書くスペースがあまりないので、彼女はプログラムで使用するバイトをできるだけ少なくすることにしました。 入力説明 シールのプログラムは、STDIN、コマンドライン引数、またはユーザー入力関数(などraw_input())から入力を受け取ります。変数で事前に初期化することはできません(たとえば、「このプログラムは変数への入力を想定していますx」)。 入力の最初の行は、次の形式の2つのコンマ区切り整数で構成されます。 A,B その後に、各文字でB構成される行が続きAます。各行には、次の文字のみを含めることができます。 .:寒い、寒い、海。マップには常にこれが境界線として表示されます。 #:氷山の一部。 a... z:氷山のパパシールではないシール。 D:パパは氷山にいます。 *:無線送信機。 (パパシールは常に大文字で表記されていることに注意してくださいD。小文字dは通常のシールです。) 出力の説明 アザラシの移動方法に関する次の規則に従って、パパのアザラシを無線送信機に移動させるためにアザラシが移動する方法に関する指示のリストを出力します。 ルール:すべてのシールはU、上()、下(D)、左(L)、および右(R)に移動できます。彼らは斜めにスライドすることはできません。 ルール:移動すると、アザラシは別のアザラシと衝突するか海に落ちるまで同じ方向に移動し続けます。 アザラシが別のアザラシと衝突すると、動きを停止します。衝突したシールは移動しません。 アザラシが海に落ちた場合、それはdrれて地図から消えます。つまり、他のアザラシのコライダーとしては機能せず、再度移動することはできません。 ルール: 2つのシールを同時に動かすことはできません。また、別のシールがまだ動いている間に動かすこともできません。次のシールは、前のシールの移動が停止した後にのみ移動できます。 ルール:シールを複数回移動したり、sealれるシールの数に制限はありません。 ルール:正しい解決策は、パパが無線送信機の端を封印することです。パパシールは、滑っている間に送信機を単に通過することはできません。 出力は、それぞれが次の形式の複数の行で構成されます。 A,B ここで、A(移動するシールであるDパパシールのため、a... z他人のためには)、及びB(いずれかのシールを移動させる方向でありU、D、L、またはR)。最短ルートを見つける必要がないことに注意してください。パパがゴールに到達するまでのルートは、許容できる出力です。 入力と出力の例 入力: 25,5 ......................... .#######################. .####D#############*k###. .#######################. ......................... 出力: D,R 入力: 9,7 ......... .a#####b. .#####d#. .##l*###. .###m#p#. .#D#.#c#. ......... 出力(多くの出力のうち1つの出力): m,R b,L …
17 code-golf 

3
文字列内のパターンを検索
この挑戦では、あなたの仕事は、与えられた構造を持つ部分文字列を見つけることです。 入力 入力は、空ではない2つの英数字文字列、パターン p、およびテキスト tです。の考え方は、の各文字がp連続して空でない部分文字列を表し、その部分文字列tが隣り合って出現し、pそれらの連結を表すことです。同一の文字は同一の部分文字列に対応します。たとえば、パターンaaは空でない正方形(短い文字列をそれ自体に連結することによって取得される文字列)を表します。したがって、パターンaaは部分文字列byebyeとa一致し、それぞれ一致しbyeます。 出力 テキストtにp一致する部分文字列が含まれている場合、出力はその部分文字列になり、の文字に:対応する文字列の間にコロンが挿入されますp。例えば、我々が持っている場合t = byebyenowとp = aa、その後、bye:bye許容出力されます。一致する部分文字列にはいくつかの選択肢がありますが、そのうちの1つだけを出力します。 t一致する部分文字列が含まれていない場合、出力は悲しい顔になり:(ます。 規則と説明 の異なる文字はp同一の部分文字列に対応できるためp = aba、文字列と一致できますAAA。文字は空でない文字列に対応する必要があることに注意してください。特に、pがより長い場合t、出力はでなければなりません:(。 完全なプログラムまたは関数を記述できます。また、2つの入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 形式で与えられますpattern text -> output。他の受け入れ可能な出力が存在する可能性があることに注意してください。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

12
指定された文字列から文字列を抽出します
文字列と2文字が与えられます。文字列からこれらの文字の間の文字列を印刷する必要があります。 入力 入力には最初に文字列が含まれます(空またはでないnull)。次の行には、スペースで区切られた2つの文字があります。 チャレンジ 2文字の間の文字列を返します 例 Hello! What's your name? ! ? 結果が出力されるはずです: " What's your name" ルール 文字列は100文字以下で、範囲(スペース)から~(チルダ)(文字コード0x20から0x7Eを含む)のASCII文字のみが含まれます。リファレンスについては、ASCIIテーブルを参照してください。 stdin(または最も近い代替)から入力を取得する必要があります。 出力はquotes(")で囲む必要があります。 完全なプログラム、または入力を受け取り、最終的な文字列を出力する関数を書くことができます 2つの文字には、範囲(スペース)から~(チルダ)のASCII文字のみが含まれます(文字コード0x20から0x7Eまで)。リファレンスについては、ASCIIテーブルを参照してください。 両方の文字が文字列に含まれるという保証はありません。 文字列に文字が見つからない場合、print "null"。 文字列のいずれかの文字が(両方の文字が同じでない限り)文字列で複数回見つかった場合、print "null"。 両方の文字が同じ文字である場合、文字列を出力します"null"。 テストケース 1) <HTML>code</HTML> > < --> "null" 2) What's what? ' ' --> "null" 3) abcdefghijklmnopqrstuvwxyz n k --> "lm" 4) …
17 code-golf  string 

7
分数を繰り返し小数に変換する
この挑戦はほぼ正反対であり、私はそれがわずかに簡単になると思う。 あなたの仕事は、2つの整数を形式a/b(有理数の形成)で取得し、その数値を10進数で正確に出力することです。 たとえば、入力1/3すると、出力されます。 0.33333333333333333 また、オプションの先頭に0を付けて、時間の終わりまで3を印刷し続けます(言語で同じ行への印刷が許可されていない場合にのみ、 1行に1文字を印刷することもできます)。 の動作はx/0未定義です。繰り返していないように見える数字(たとえば5/4)については、実際に繰り返します。次の2つの形式のいずれかが受け入れられ5/4ます。 1.25000000000000000 1.24999999999999999 (整数で1.9999999も同じ、または2.000000) 画分は、最も単純な形態であってもなくてもよく、aまたはb負(注かもしれ-a/b = -(a/b)、-a/-b = a/b、a/-b = -a/b、および-.6249999無効であるが、-0.6249999許容されていますが、まだ使用することができます。

11
ピラミッドで数える
入力として個別の整数のリストを受け取り、次の逆さまのピラミッドで入力番号の出現回数を出力または返すプログラムまたは関数を作成する必要があります。 すべてのステップで元のリストから開始して、隣接する番号のすべてのペアの最大値を持つ新しいリストを作成します(たとえばに5 1 2 6なります5 2 6)。リストに番号が1つしかない場合は停止します。 完全なピラミッド5 1 2 6は 5 1 2 6 5 2 6 5 6 6 結果の発生回数は3 1 2 4(5 1 2 6それぞれ)です。 入力 繰り返しのない1つ以上の整数のリスト。(たとえば1 5 1 6無効です。) 出力 正の整数のリスト。iリストのth番目の要素はi、ピラミッド内のth番目の入力番号の出現回数です。 例 入力=>出力 -5 => 1 8 4 => 2 1 5 9 7 => 1 …
17 code-golf  number 

4
グループ療法:グループを特定する
特定の有限マグマの乗算表がグループを表すかどうかを決定するプログラムを作成します。マグマは、閉じている二項演算のセットです。つまり、 Gのすべてのa、bについて、a * bは再びGにあります(閉店) (G、*)をマグマとします。(G、*)は次の場合にグループです Gのすべてのa、b、cに対して、(a * b)* c = a *(b * c)(結合性) Gにすべてのaに対してe * a = a * e = aとなる要素eが存在します(中立要素の存在) Gのすべてのaについて、a * b = b * a = eであるようなGにabがあります。ここで、eは中立要素です(逆の存在) スペック 入力は、n ^ 2-1文字の文字列(マグマの各要素に1文字、許可されるのは0-9、az)で、演算子名を省略して、行ごとに読み取ったテーブルを表します。入力が有効なマグマを表すと仮定できます(つまり、各要素はヘッダー行/列で1回だけ出現します)。 例:ここにZ_4のテーブルがあります + | 0 1 2 3 ----------- 0 | 0 1 2 3 …

16
黄金比継続分数のMathJaxを生成する
MathJaxが一時的に無効になることを見越して、この質問でレンダリングされたMathJaxは画像に置き換えられました。回答を投稿することはできますが、レンダリングされたMathJaxを別のサイトで表示する必要があります。 PPCG が MathJaxを入手しました!これは、適切にフォーマットされた数式を投稿に簡単に含めることができることを意味します。(便利なMathJaxチュートリアル。) たとえば、次の例は黄金比を無限連続分数として表したものです。 この方程式のMathJaxコードは $$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}}$$ これを見つけるには、数式を右クリックし、[ 数学を表示 ] →[ TeXコマンド ]をクリックします。手段は、それは代わりに、インラインのページの中央に、自身の上に表示されます。単一のインラインを使用します。$$$ チャレンジ 非負の整数nを取り込んで、黄金比の継続分数の「ステップ」の多くの「ステップ」のMathJaxコードを出力するプログラムを作成します。 回答全体で物事を標準に保つには、次の正確な MathJax構文を使用する必要があります。 n = 0の場合、出力はでなければなりません$$\varphi=1+\dots$$。 次のようにレンダリングされます: n = 1の場合、出力はでなければなりません$$\varphi=1+\cfrac1{1+\ddots}$$。 次のようにレンダリングされます: n = 2の場合、出力はでなければなりません$$\varphi=1+\cfrac1{1+\cfrac1{1+\ddots}}$$。 次のようにレンダリングされます: n = 3の場合、出力はでなければなりません$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}$$。 次のようにレンダリングされます: このパターンは、nが大きくなると続きます。nは、方程式の分割線の数を表していると言えます。 ノート \cfracより一般的なの代わりに使用され\fracます。 \dots\ddotsn = 0の代わりに使用されます。 stdinまたはコマンドラインから入力を取得します。 stdoutへの出力(オプションの末尾の改行付き)。 または、nを整数として受け取り、MathJaxコードを文字列として返す(または印刷する)関数を作成することもできます。 得点 バイト単位の最小の提出が勝ちです。Tiebreakerは以前の提出に進みます。

7
Dammアルゴリズムを使用してチェックディジットを計算する
Luhnなどの一般的なチェックディジットアルゴリズムがあり、次にDammアルゴリズムなどの良いものがあります。Luhnなどのアルゴリズムの人気の背後にある唯一の考えられる理由は、それらのコードゴルフ実装が存在することです。これは、より良いアルゴリズムのゴルフ実装を提供することにより、コミュニティとしての世界を変える力を持っていることを意味します。 したがって、この課題は、Dammアルゴリズムを使用してチェックディジットを計算する関数または選択した言語で完全なプログラムを作成することにより、世界を変えることです。数が最も少ないの答え文字(バイトではない)は、数週間のうちに勝者として選択されます。すべての補助機能と操作テーブルの宣言を文字カウントに含める必要があることに注意してください。同点の場合、最も人気のある回答が選択されます。 このアルゴリズムは、順序10の弱く完全に反対称な準グループでなければならない操作テーブルを中心に展開します。ダムアルゴリズムに関するWikipediaの記事にある操作テーブルは、この課題で使用されるものです。完全を期すために、以下に再現します。 | 0 1 2 3 4 5 6 7 8 9 ----+---------------------------------------- 0 | 0 3 1 7 5 9 8 6 4 2 1 | 7 0 9 2 1 5 4 8 6 3 2 | 4 2 0 6 8 7 1 3 5 …
17 code-golf 

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