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

答えがコードを生成することが期待される課題のために。

9
2017年まで成長
この課題では、年齢を経るにつれて成長するプログラムを構築します。2017年までです。 チャレンジ このチャレンジの説明に「プログラム」と記載されている場合は、「機能」も読むことができます。 送信すると、実行すると、THE LENGTH OF YOUR SUBMISSION+ 1バイト長のプログラムが出力されます。 ときにそのプログラムが実行され、それが出力され、プログラムされますTHE LENGTH OF YOUR SUBMISSION+は2バイトの長...というように。 ただし、プログラムが2017バイトの長さに達すると、代わりに出力2017して終了する必要があります。 ルール 最終プログラムの出力は2017唯一でなければなりません2017。これは、文字列または整数を指定できますが、それは読まなければなら2017ない2017.0か、0x7E1または他のそのようなナンセンス。 標準的な抜け穴はありません。 初期プログラムのみが入力を要求することが許可されており、これはバイトカウントに追加されます。したがって、最初のプログラムの長さが324文字で入力が13バイトの場合、合計スコアは 324 + 13 = 337に なり、出力されるプログラムの長さは 338バイトでなければなりません。 perl -Xただし、初期プログラムと生成されたすべてのプログラムが同じフラグを使用している限り、コマンドラインフラグ(例:)を使用しても問題ありません。また、それらも合計バイト数にカウントされます。コマンドラインフラグの前にあるダッシュ、スラッシュなどは合計にperl -Xはカウントされないため、たとえば1バイト追加されます。 関数を返す場合、評価時に関数を生成する文字列ではなく、実際の関数である必要があります。 不適切なクイン(プログラムがクインの場合)は許可されません。 例 擬似コード、99バイト IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE …

30
Parrotプログラムを作成する
入力が与えられると、その入力の後に改行が際限なく続きます。 入力は、印刷可能なASCII文字(0x20-0x7E)と改行(0x0A)のみで構成される文字列になります。 入力の長さが0の場合、改行を無限に出力します。 これはコードゴルフなので、各言語で最も少ないバイトです勝ちます!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

2
スタック状態図を解く
スタック状態図は、1つのスタックの値が他のスタックにどのように変更されるかを示します。たとえば、これはスタック状態図です: 3 0 2 1 0 これは、最初に3つの値(3パーツ)を含むスタックがあることを意味します。これらの値には0から2までのインデックスが付けられ、先頭に0が付きます2 1 0。次の部分0 2 1 0では、スタックの最終状態について説明します。元々スタックの最上位にあった値も、後方にコピーされています。 これらの変換は、いくつかのデータ型をサポートするスタックで発生します。 「値」タイプ。これは元々スタックにあったものです。これは文字列、整数などでもかまいませんが、その値を知る必要はありません。 「リスト」タイプ。これは、任意のデータタイプの値を含むリストです。 この変換をモデル化するには、次の操作が許可されます。 S:スタックの上部にある2つの値を交換します。2 1 0→2 0 1 D:スタックの一番上に値を複製します:1 0→1 0 0 R:スタックの一番上の値を削除します。2 1 0→2 1 L:一番上の値を、その値を含む1要素のリストに変換します。2 1 0→2 1 (0) C:スタックの上位2つのリストを連結します。2 (1) (0)→2 (1 0) U:リストのすべての値をスタックに配置します。2 (1 0)→2 1 0 これらは、他のコマンドが使用されない限り、Underloadコマンドと同等~ : ! a * ^です。 …

2
RoboCrittersをBrainfに翻訳***
RoboCritters(語源)は真新しい難解なプログラミング言語です(気にせずに探してみてください、私はそれを発明しました)。これはBrainfuck(BF)の一種で、通常の演算子置換スキームよりも少し複雑です。RoboCrittersのすべてのプログラムは、7文字のみを含むテキストの長方形のグリッドに加えて、グリッドを形成する改行です。. []/\| RoboCrittersプログラムの例: |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ RoboCrittersプログラムをBFに変換するには、グリッド内の各非改行文字を通常の読み取り順序(左から右、次に上から下)で見てください(例:)|\/||./|[]||[..][][] ||/\|[..][..][..] \/\/。 現在のキャラクターから右下に伸びるグリッドの4×2セクションが、以下にリストされている8つのロボットクリッターのいずれかに正確に一致する場合、対応するBFコマンド(><+-.,[])を(最初は空の)BFプログラムに追加します。 4×2グリッドセクションの場合 がロボットクリッターのいずれとも一致しないか、範囲外になった場合、BFプログラムには何も追加されません。 ジョイボット、>コマンド: [..] \][/ Calmbot、 <コマンド: [..] /][\ Squidbot、 +コマンド: [..] //\\ スパイダーボット、 -コマンド: [..] |||| バニーボット、 .コマンド: [][] [..] トゥースボット、 ,コマンド: [..] |/\| Foxbot、 [コマンド: |\/| [..] バットボット、 ]コマンド: [..] \/\/ したがって、サンプルプログラムを読む |\/||./|[]|| [..][][] | …

5
2つの番号を繰り返し追加して、任意の番号を作成します
あなたは、2つの16ビットレジスタを持つマシンを与え、しているxとy。レジスタが初期化されx=1、y=0。マシンが実行できる唯一の操作は、65536を法とする加算です。つまり、次のとおりです。 x+=y- xは次のものに置き換えられ(x + y) mod 65536ます。y変わらない y+=x -同様に y x+=x- xは次のものに置き換えられ2x mod 65536ます。x偶数の場合にのみ合法 y+=y -同様に y 目標は、レジスタのいずれxか(またはy)で事前に定義された数を取得することです。 プログラムまたは番号(で受け取るサブルーチン書くstdin、argv関数のパラメータ、スタックの上部または任意の他の従来の場所)、そしてこの番号を取得するためのプログラムを出力します。出力は、に行くstdoutか、(言語がを持たない場合stdout)他の従来の出力デバイスに行く必要があります。 出力プログラムは、最大100%プラス最適から2ステップまで可能です。つまり、ターゲット番号を取得する最短プログラムにnステップがある場合、ソリューションはを超えることはできません2n+2。この制限は、「簡単すぎる」ソリューション(1、2、3、...など)を回避することですが、完全な最適化は必要ありません。最短のプログラムを見つけるのが最も簡単だと思いますが、確実ではありません... 例:入力=25。出力: y+=x x+=y x+=y x+=x x+=x x+=x y+=x 別の例:フィボナッチ数の場合、出力にはこの交互パターンがあります。入力= 21の場合、出力は y+=x x+=y y+=x x+=y y+=x x+=y y+=x 最短コード(バイト単位で測定)が優先されます。 (このパズルは、最近生成しなければならなかった16ビットプロセッサのコードに触発されました) PS不思議-最適なプログラムが最も長いのはどの番号ですか?

7
フィボナッチプログラムの長さ
長さがnの次のフィボナッチ数である別のプログラムを出力する長さnのプログラムを作成します。新しいプログラムは同じことをしなければなりません-長さが次のフィボナッチ数などである別のプログラムを出力します 。n自体(元のプログラムの長さ)はフィボナッチ数である必要はありませんが、そうであれば良いでしょう。 最短のコードが優先されます。 外部リソースなし、ASCIIのみ、無料のコンパイラ/インタプリタが必要です。 出力が改行で終わる場合も、カウントされます。

11
プログラムを印刷するプログラム
チャレンジ あなたの目標は、別のプログラムを印刷するプログラムを書くことです。その印刷されたプログラムは別のプログラムを印刷し、新しいプログラムは最後まで別のプログラムを印刷する必要があります。 ルール 各プログラムは256バイト未満でなければなりません。(これを変更する必要がある場合は、コメントを残してください) 最後のプログラムは空のプログラムでなければなりません。 プログラムの数は有限である必要があるため、プログラムはクインになることはできません。 プログラムはすべて同じ言語で実行する必要があります。 入力は許可されていません。 勝者プログラムは、可能な限り多くのプログラムを印刷し、それ自体をカウントするプログラムです。 幸運を!

17
/ *行番号コメントを生成* /
あなたの仕事は、入力として文字列を受け取り、次のルールを満たすすべての行の先頭にテキストを追加するプログラム(または関数)を書くことです。 追加するテキストには行番号が含まれている必要があります。0または1ベースのインデックスを使用できます。 テキストはあなたの言語のコメントでなければなりません。コメントは、プログラムの状態を変更しない、構文的に有効なコードとして定義されます。コメントを削除しても、プログラムは変更されません。 コメントの最後には改行のみを含めることができます。 空白とコメントのみを含む行に行番号を付ける必要はありません。 仕様書 入力はあなたの言語の有効なプログラムであると仮定するかもしれません。 Pythonのようなインデントに敏感な言語では、すべてのインデントの後に行番号コメントを配置できます。インデント文字としてタブまたはスペースを選択できますが、投稿で指定する必要があります。 コード内のすべてのステートメントがせいぜい1行全体を占めると仮定することができます。つまり、複数行の文字列やバックスラッシュの連続はありません。 テストケース Python: #0 a = int(input()) #1 while a: #2 print(a) C:(正直、これがコンパイルされたことに驚いています) /*0 */#include <stdio.h> /*1 */int main() /*2 */{ /*3 */ char c; /*4 */ c = getchar(); /*5 */ do /*6 */ { /*7 */ putchar(c); /*8 */ } …

2
Kippleを解釈してください!
前書き Kippleは、2003年3月にRune Bergによって発明されたスタックベースの難解なプログラミング言語です。 Kippleには、27のスタック、4つの演算子、および制御構造があります。 スタック スタックは命名されているa- zと32ビット符号付き整数を含んでいます。また@、数値の出力をより便利にするための特別なスタックがあります。数字がにプッシュされる@と、その数字の数字のASCII値が実際にプッシュされます。(たとえば、12を@に押した場合、49を押し、次に50を押し@ます。) iプログラムが実行される前に、入力が入力スタックにプッシュされます。インタープリターは、i実行前に保存する値を要求します。実行が終了すると、出力スタック上のすべてoがポップされ、ASCII文字として出力されます。これはKippleの唯一のIOメカニズムであるため、Kippleプログラムとの対話は不可能です。 オペレーター オペランドは、スタック識別子または符号付き32ビット整数のいずれかです。 プッシュ:>または< 構文:Operand>StackIndentifierまたはStackIndentifier<Operand Push演算子は、オペランドを左に取り、指定されたスタックにプッシュします。たとえば12>a、値12をstackにプッシュしますa。a>bstackから一番上の値をポップし、stack aにプッシュしますb。空のスタックをポップすると常に0 a<bが返されb>aます。これはと同等です。a<b>c最上位から値ポップbの両方にとプッシュをcしてa。 追加: + 構文: StackIndentifier+Operand 追加演算子は、スタックの一番上の項目とオペランドの合計をスタックにプッシュします。オペランドがスタックの場合、値はそこからポップされます。たとえば、スタックの最上位の値aが1の場合、a+23をプッシュします。aが空の場合、a+22をプッシュします。スタックの一番上の値場合aとbがある1と2は、a+bスタックから値2をポップアップ表示されますbし、スタックに3を押しますa。 減算: - 構文: StackIndentifier-Operand Subtract演算子は、Add演算子とまったく同じように機能しますが、加算ではなく減算する点が異なります。 晴れ: ? 構文: StackIndentifier? Clear演算子は、最上位のアイテムが0の場合、スタックを空にします。 インタープリターは演算子の隣にないものをすべて無視するため、次のプログラムが機能しますa+2 this will be ignored c<i。ただし、コメントを追加する適切な方法は、#文字を使用することです。a #と行末文字の間のすべてのものは、実行前に削除されます。ASCII文字#10は、Kippleの行末として定義されています。 オペランドは2つの演算子で共有a>b c>b c?できますa>b<c?。たとえば、と書くことができます。 プログラム1>a<2 a+aはa、値を[1 4](下から上へ)含むようになり、ではありません[1 3]。-オペレーターも同様です。 制御構造 Kippleには、ループという制御構造が1つしかありません。 構文: (StackIndentifier code ) …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

4
担当者の再計算にご協力ください!
数か月前に、質問に対する賛成票で与えられる評判を高めることについて、メタについて議論しました。投票の現在の評判システムの基本は次のとおりです。1 質問に賛成票を投じるU価値は5つあります。 回答の賛成票uは10名の価値があります。 質問または回答のダウン票dは、-2評判に値します。 新しいシステムにはさまざまな提案がありましたが、現在最も人気のあるものは上記と同じですが、質問の賛成票が+10 repにスケーリングされています。この課題は、このシステムが導入された場合にどれだけ多くの担当者を獲得できるかを計算することです。 例を見てみましょう。投票アクティビティがの場合、UUUUuuuuUUUUUduuudUU現在のシステムでは121を獲得します。 U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x 5 = 25 = 85 d x 1 x -2 = -2 = 83 u x 3 x 10 = 30 …

2
nを法とする数論のインタープリター
(私たちの目的のための)数論の文は、次の記号のシーケンスです。 0および'(後継者)-後継者は+1、0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加算)と*(乗算) = (に等しい) (と)(括弧) 論理演算子nand(a nand bis not (a and b)) forall (ユニバーサル数量詞) v0、v1、v2、など(変数) ここに文の例があります: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) ここでnot xは省略形ですx nand x-実際の文が使用する(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

4
BrainfuckでURLをエンコードする
この質問に触発されて、今日の目標はbrainfuckでURLをエンコードすることです。 ブラウザがハッキングされました!ロケーションバーはブレインファックインタープリターに変わりました。URLをブレインファックプログラムに変えるプログラムが必要です。私のコンピューターも非常に遅いので、brainfuckプログラムが小さければ良いです。 ああ、私の作業中のタブは1つしか開いていません。そのため、プログラムはツイートでのみ送信できます。 入力として文字列を受け取り、brainfuckプログラムを出力する任意の言語で、ツイート(140文字)に適合するプログラムを作成します。 このBrainfuckプログラムは、入力なしで実行され、出力を生成します。 この出力は、Google Chromeのロケーションバーに挿入され、実行されます。 Google Chromeの動作が#1から入力文字列を入力することで得られる動作と同じ場合、ソリューションは有効です。URL短縮サービスによるリダイレクトは異なる動作と見なされます-少なくとも同じドメインにとどまります。 Brainfuckインタープリターには、各セルに無限精度の符号付き整数があり、セルの数に制限がないと仮定できます。 スコアは、次のURLセットをエンコードするために生成されたBrainfuckプログラムの長さの合計によって決まります。 https://www.google.com/ /codegolf/47895/ http://www.golfscript.com/golfscript/examples.html http://en.wikipedia.org/wiki/Percent-encoding ftp://ftp.freebsd.org/pub/FreeBSD/ https://github.com/isaacg1/pyth/blob/master/doc.txt#L92 http://ftp.gnu.org/non-gnu/nethack/nethack-3.4.0.tar.gz.back-RSN.README 最小スコアが勝ちます。

8
指定された長さの文字列を出力するBrainf_ckプログラムを生成します
あなたの友人は、独特のロックシステムを備えた金庫に侵入しようとしています。特定の場所で一定数の穏やかなノックが必要です。あなたの友人は番号(1〜99999の範囲)を発見し、必要なノックを生成するガジェットを所有しています。ただし、ガジェットはBrainfuckインタープリターです!したがって、友人はBrainfuckプログラムをフィードする必要があります。これは、明らかに、可能な限り短くする必要があります(ガジェットのI / Oが遅い)。 あなたの仕事は彼を助けることです!入力として数値を受け入れ、入力を受け付けNず、印刷可能なASCII文字の文字列を出力するBrainfuckプログラムを出力するプログラムまたはサブルーチンを任意の言語で記述します(スペース文字を除く-範囲33のコード... 126)の長さN。 例:入力の10場合、出力は +++++++++++++++++++++++++++++++++.......... (しかし、短縮できると確信しています!) スコアは、次の値の出力の長さの合計になりますN(これらは乱数です)。 55 68 15 28 841 838 522 846 4898 9004 9363 3810 13230 67175 37231 44701 ああ、あなたはあなたのコード(ジェネレータープログラム)をあなたの友人にTwitterで送信します。140文字以下であることを確認してください! PS Brainfuck言語には多くのバリアントがあります。テープが両方向に無限(または「円形で十分な大きさ」)で、セルに32ビットのint容量(有限で最大99999の数値を保持できる)があると仮定しましょう。また、ラッピングなし:セルがオーバーフローすると、マシンは自己破壊します!

5
2つのBrainfuckプログラムを作成する
2つのbrainfuckコードスニペットAとを指定して、s結果の入力で実行した場合と同じ動作をするBいくつかのbrainfuckコードCを出力します。に与えられたかのように、以下の仮定に一致するすべての入力に対して機能する必要があることに注意してください。BACA あなたは仮定することができます: 有限入力。 AとBの両方が停止します。 EOFは常に0または常に-1です。 細胞の残留を一貫して許可または禁止する 無制限のテープ(それ以外の場合、要件が不可能な場合があります) 一貫して8ビットのラッピングまたは無制限の整数 EOFを表すバイトを含むストリーム(AまたはBの入力または出力) コードAおよびBには、Cに表示される可能性のある文字を含めることができます。 +-[]<>,. 例(EOF = 0) A = ,[..,] B = ,[...,] C = ,[......,] A = >,[>,]<[.<] B = ,[...,] C = >>>>,[[-<+<+<+>>>]>>>,]<<<<[.<] A = >,[>,]<[.<] B = ,[...,] C = >,[>,]<[...<] A = ,. B = ,. C = ,>,[,]<. …

4
セミキンを書く
2つの言語があるAとしBます。文字列sはセミクインでAありB、次の条件を満たす場合: s言語の羽毛ですA。 sでポリグロットであるAとB。 実行の出力sとしてBプログラムは、異なる列であるs'クワインですB。 この課題の目標は、2つの異なる言語でセミキンを書くことです。これはcode-golfなので、最も短いコードが優先され、最も早い回答がタイブレーカーとして使用されます。 クインのルール 本当のクインだけが受け入れられます。つまり、以下を使用せずに、ソースコード全体をそのままSTDOUTに出力する必要があります。 直接または間接的にソースコードを読み取る。 フィードするすべての式を単に評価して出力するREPL環境に依存しています。 特定の場合にソースを出力するだけの言語機能に依存しています。 エラーメッセージまたはSTDERRを使用して、クインのすべてまたは一部を書き込みます。(STDOUTが有効なクインであり、エラーメッセージがその一部ではない限り、何かをSTDERRに書き込んだり、警告/致命的でないエラーを生成したりできます。) さらに、ソースコードはリテラル(文字列リテラル、数値リテラルなど)やNOPだけで構成されてはなりません。たとえば、`12はJellyおよびPythのポリグロットですが、JellyではNOPおよび数値リテラルであるため、無効です。 抑制されない出力(著作権表示、起動/シャットダウンメッセージ、末尾の改行など)は、クインの有効性のために出力で無視される場合があります。 ポリグロットのルール 使用される2つの言語は明確に異なる必要があります。特に: 同じ言語の異なるバージョンであってはなりません(例:Python 2とPython 3)。 それらは、同じ言語の異なる方言であってはなりません(例えば、PascalとDelphi)。 1つの言語が他の言語のサブセットではない場合があります(CとC ++ 1など)。 1つの言語は他の言語の自明な派生物ではない可能性があります(たとえば、Matlab vs. Octave 2、brainfuck vs boolfuck vs TinyBF vs ShadyAsFuck vs他のすべての自明な脳ファック派生物)。 その他の規則 STDIN(またはその他のソース)からの入力を受け入れることはできません。選択した言語が場合しなければならない入力を取り、その後、入力のいずれかが空でなければなりません(空の文字列から、パイプ/dev/nullなど)、またはプログラムの出力は、入力に依存してはなりません。 この課題では、完全なプログラムを作成する必要があります。ソリューションを実行するために追加のコードを要求することは許可されていません(ソリューションで定義されたラムダ関数の割り当てや呼び出しなど)。 1:はい、Cは実際にはC ++のサブセットではないことを知っています。それは多声の目的のために1つと見なされるのに十分に近いので、私はこの挑戦のためにそれを数えています。 2:上記のポイント1と同様に、Octaveは技術的にはMatlabと100%互換性がありませんが、互換性があるように設計されており、Matlab / Octaveのポリグロットを許可すると問題が簡単になります。

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