タグ付けされた質問 「metagolf」

メタゴルフはメタプログラムの出力を利用しています。メタプログラムは、特定のタスクを解決するプログラムを生成し、その出力の長さが元のプログラムのスコアを決定します。

3
人生がレモンを与えたら、レモネードを作りなさい
チャレンジ あなたはどこにでも単語が、入力文字列が与えられます"Lemon"、それはに変換する必要が発見され"Lemonade" たがa、d、およびe文のどこかから借りなければなりません。 例 入力例: 子供の頃にレモンを見つけました 出力例: 私は子供の頃レモネードを作りました レモネードは、元から次の上付き文字を盗んで作成されました 私はフン日間レモネードWH 電子を nは私がいた子供 これは、「e」、「d」、および「a」という可能な出力例の1つにすぎません。これはどこからでも取得できます(もちろん、単語以外はlemon) コメント •、、またはsが十分eでない場合は、指定された文字で実行可能なことを出力する必要があります。たとえば、入力は出力されますadbdblemonbblemond • lemonテキストは常にスタンドアロン(各側のスペース)であるとは限りません。たとえばlemons、入力のどこかに単語があり、出力は次のようになります。lemonades •入力にはlemon、0であっても任意の数のsを含めることができますlemon(この場合、出力は入力と同一になります)。 •レモネードを大文字と小文字で作成できます。たとえば、にleMonなる可能性がleMonadeあり、ade借りたものはどのような場合でも可能です(したがって、になる可能性もありますleMonADe)。あなたが借りた手紙のケースは、あなたがそれを借りたときの状態のままでなければなりません。(入力例->出力、he hAD lemOn-> h h lemOnADe) •完全なプログラムである必要はありません。機能だけで十分です。 •入力はCP437文字セットのみであると仮定できます。 コードゴルフ これはcode-golfであるため、バイト数が最も少なくなります! 擬似テストケース *注意:特定の入力に対して複数の出力が存在する可能性があるため、プログラムはこれらのテストケースのように正確に出力されない場合があります。これは、人々がロジックを理解できるようにするためです。 入力:EpaD leMons 出力:p LeMonaDEs 入力:hello world 出力:hello world 入力:レモンレモン 出力:レモンレモン *( 、、 文字は別の「レモン」から取られてはいけません)ead 入力:HE HADレモネード 出力:HH lemonADEade 入力:あなたはレモンが好きですか?あなたはレモンで私を苦しめました! 出力:o lemonADesが好きですか?あなたはレモネードを盛り上げました! …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

7
ベースプルーフ式の出力
バックグラウンド いくつかの可能な未来では、世界は彼らの数値システムを10進数(基数10またはb10)から他の基数(2 b2進数b8、8進数、16進数b16、さらには単項b1に変換します。したがって、この世界を変える可能性のあるイベントに備えて、すべてのプログラムをベースプルーフすることにします。これは、単数0のsと1s のみを演算子と組み合わせて使用​​して、既存の数値定数を置き換えることで実行できます。 ただし、問題が1つだけあります。変更するプログラムが大量にあり、各数値を手動で式に変換するには数週間かかります。したがって、プログラム(または関数)を作成して、各式を置き換える式を決定します。 入力 入力は正の整数になります。コードは 1000までの整数を処理できる必要があります。 (コードが小数および/または負の入力をサポートしている場合は、以下のスコアリングを参照してください。) 出力 コードは、少なくとも1つの言語で入力に評価される式を出力する必要があります。これはどの言語でもかまいません。プログラムまたは関数が記述されているものと同じである必要はありません。また、この式は完全なプログラムまたは関数である必要はありません。 明確にするために、出力には次の操作のいずれかが含まれる場合があります。 インクリメント/デクリメント 加算/合計 減算/否定 乗算/倍数(数値が直接関与しない場合のみ2!) 除算/モジュロ 指数/対数 square / sqrt(これも数値に直接関係しない場合のみ2!) ビット演算(bOR、bAND、bNOT、bXOR、ビットシフト) 変数の設定/取得 スタック操作 出力で、または同様の機能を使用することはできませんeval()。また、上記以外のアクションを実行する関数を出力で使用することはできません。 ああ、もう一つ:私たちは出力が可能な限り多くの拠点として有効であることにしたいから、それが含まれていてもよいだけの数の定数である0と1。10言語がa 1およびa として解釈しない限り、(10)などの数字は許可されません0。などCJamのような文字使用され、いずれかの許可されていない番号を格納する文字列を使用してA- K(表します10- 20)。 テストケース (すべての出力はJavaScriptですが、他の言語でも機能する場合があります。) 入力1: 2 可能な出力1: 1+1 入力2: 13 可能な出力2: (a=1+1+1)*a+a+1 入力3: 60 可能な出力3: (b=(a=1+1+1+1)*a)*a-a 入力4: 777 可能な出力4: (c=(b=((a=1+1+1+1)*a-a+1)*a)*a+b)+c+c-a+1 入力5: 1000 …

5
バイナリワードに一致する最短の単純な正規表現
仕事 単純な正規表現を、次のみで構成される空でない正規表現として定義します 文字0と1、 括弧をグループ化(して)、 1つ以上の反復量指定子+。 0sと1sの空でない文字列が与えられると、プログラムは完全な入力文字列に一致する最短の単純な正規表現を見つけるはずです。(つまり、単純な正規表現に一致する場合、とで予約されているふり^ をし $ます。)最短の正規表現が複数ある場合は、それらの一部またはすべてを出力します。) code-golfなので、最短の送信(バイト単位)が勝ちます。 テストケース 1 -> 1 00 -> 00 or 0+ 010 -> 010 1110 -> 1+0 01010 -> 01010 0101010 -> 0(10)+ or (01)+0 011111 -> 01+ 10110110 -> (1+0)+ 01100110 -> (0110)+ or (01+0)+ 010010010 -> (010)+ 111100111 -> 1+001+ or …

3
メタ放射線硬化剤
バックグラウンド このサイトでは、プログラムを「放射線強化」するように要求する質問が時々あります。つまり、どのバイトが削除されても、プログラムは1つまたは複数のバイトの削除に耐えることができなければなりません。 プログラミングの課題で頻繁に設定されるタスクでは一般的であるように、これらの課題に特に優れた言語を作成したいのは自然なことです。これを行うための自然な方法は、破損を元に戻すことができるメタデータを追加することであることを考えると、実際には設計が必要な言語ではなく、エンコードです。アイデアは、各入力をバイトのシーケンスに変換することで、シーケンスがわずかに照射されても、元の入力を抽出できるようにします。 タスク 次のような2つのプログラムまたは関数、E(エンコーダー)およびD(デコーダー)を記述します。 Eは、オクテットのシーケンス(この仕様では「入力」と呼びます)と非負整数の「放射」の2つの引数を取り、「エンコーディング」のオクテットのシーケンスを出力します。 Dは1つの引数、オクテットのシーケンス( " encdng ")を取り、オクテットのシーケンス " 再構成 " を出力します。 EとDの両方を実行する場合(encdng、エンコーディングから放射要素を削除することで選択されるDへの入力(必ずしも連続的ではない))、encdngを形成するために削除された文字に関係なく、再構築は入力と等しくなります。 明確化 あなたが機能を提出する場合は、それらを呼び出す必要はありませんEとしますD。言語に最適な名前を​​選択できます。 「オクテット」は基本的に0から255までの整数であり、整数、文字、または言語に適したものとしてエンコードできます。 EとDは完全に決定的でなければなりません(つまり、同じ入力を与えると常に同じ出力が生成されます。「入力」はEの入力と放射、またはDのencdngとして定義されます)。特に、Eはサイドチャネルを介してDに情報を伝達しない場合があります。 削除は、シーケンスの1つの要素を削除することにより実行されます。エディターでシーケンスを開き、カーソルを任意のポイントに置き、Backspaceキーを押すことを考えてください。要素が複数回出現する場合、要素のコピーが1つだけ削除される可能性があります(つまり、同じオクテットの他のインスタンスは影響を受けません)。 スコアはかなり短い入力に基づいてのみ計算されますが、プログラムは入力および放射に対して理論的に機能する必要があります。特に、inputにどのオクテットが現れても機能しなければなりません。(申し訳ありませんが、入力に表示されないことがわかっている印刷できない文字を使用したい人は、入力が非圧縮性であることを確認する必要があります。 2つの関数を定義する1つのファイルを送信できます。それぞれ関数を定義するか、両方とも完全なプログラムである2つのファイル。または3つのファイル。2つはそれぞれDおよびEを実装します(完全なプログラムであるか関数を定義することにより)。3つ目はDとEの両方に共通のヘッダーファイルまたはライブラリです。使用する送信形式に関係なく、プログラミング言語の実装は、ファイルの場所などの引数を追加せずに両方のプログラムを理解できる必要があります(または、標準の規則に従って、通常とは異なる方法で実装を呼び出すためのバイトペナルティを支払う必要があります)。 勝利条件 各々に対して長さと放射線、聞かせてF(長さ、放射線の)の合計の長さである符号化全て秒その対応する入力の長さと長さ、及び所定の放射。(つまり、f(長さ、放射)= 入力の長さは長さ length(E(入力、放射))になります。)次に、g(長さ、放射)がf(長さ、放射)÷256 長さ。言い換えれば、gは入力の長さと放射線強化の要件に対するエンコードされた出力の平均長です。(理論上はこれをブルートフォースで計算できますが、そのようにスコアを計算するのには信じられないほど時間がかかるでしょう。不明な点があります。おおよそのスコアを投稿してください。他のエントリが同様のスコアを投稿した場合、あなたまたは他の誰かがより深く計算することができます。) あなたのスコアはの和に等しいグラム(長さ、放射線のすべてのための)放射範囲の0〜9まで含めて、すべての長さ 99包括範囲0で、プラス(主にハードコーディングを避けるために、または行く競争を維持する場合誰かが数学的に完璧なエンコーディングを発見します。これは、そうでなければ最小限の要因である可能性があります)チャレンジへの提出の合計バイト数(および異常なインタープリターフラグまたは特定のファイル名を要求するようなものに対する標準ペナルティ)。勝者は、最も低いスコアのエントリです(最初に送信するエントリによってタイブレークされます)。

1
PreludeをBefungeに翻訳
これがウィークリーチャレンジ#2です。テーマ:翻訳 Preludeでプログラムのソースコードを取り込み、Befunge-93で同等のプログラムのコードを出力するプログラムまたは関数を記述します。プログラムを同等にするには、所定の入力に対してPreludeプログラムと同じ出力を生成し、Preludeプログラムが停止する場合にのみ停止する必要があります。 入力言語:プレリュード Pythonインタープリター: コードスニペットを表示 #!/usr/bin/python import sys NUMERIC_OUTPUT = True NUMERIC_INPUT = True try: filename = sys.argv[1] except: print "Usage:", sys.argv[0], "<filename>" raise SystemExit try: inFile = file(filename) except: print "Error when opening", filename raise SystemExit # code is kept as a list of voices, each voice a string …

4
実用的な数値を計算する
定義 正の整数nは、すべてのより小さい正の整数がの別個の約数の合計として表される場合に限り、実用的な数値(OEISシーケンスA005153)ですn。 たとえば18、実用的な数値です。除数は1、2、3、6、9、18であり、18より小さい他の正の整数は次のように形成できます。 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

9
Brainfuckトランスレーターを書く
任意のプログラミング言語またはスクリプト言語xで、有効なBrainfuckソースコードをstdinから取得し、brainfuckプログラムとまったく同じ結果を出力する言語xで記述されたプログラムのソースコードをstdoutに出力するプログラムを作成します。 プログラムは、空のファイルを含む、有効なブレインファックプログラムで動作する必要があります。 スコアは、ソースコードのバイトカウントと、次の入力が与えられた場合の出力のバイトカウントに等しくなります。 +++++ [-] +++++ +++++ [ > +++++ ++ > ++ +++ ++++ + > +++ <<< - ] > ++ . H > + . e ++ +++ ++. l . l +++ . o > ++ . space < +++++ +++ . w ----- --- . …

1
Brainflak Multiplication Metagolf
この質問は、Brain-Flakの最初の誕生日を祝うために設計されたいくつかのBrain-flak Birthdayチャレンジの最初のものです!Brain-Flakの誕生日の詳細については、こちらをご覧ください。 昨年の夏、私たちはBrain-flak Integer Metagolfを作成し、それが生成した回答はBrain-Flakコミュニティにとって非常に役立ちました。整数メタゴルフを非常に効率的にする主なものは、乗算ハードコーディングと呼ばれる技術です。 Brain-Flakでは、実行時の乗算は非常に高価です。既知の最短の乗算スニペットは次のとおりです。 ({}<>)({<({}[()])><>({})<>}{}<><{}>) メガトムが発見 ただし、コンパイル時間の乗算を作成する非常に簡単な方法があります。たとえば、次のコードは5倍になります。 (({})({})({})({}){}) オンラインでお試しください! これは、連続した式が一緒に追加されるため機能します。それぞれ({})がスタックに対して何もせず({}ポップし(..)てすぐに押し戻します)、スタックの一番上にあるものを評価します。これらのすべての式は、スタックの一番上にあるものを合計すると最大5倍になります。 いずれかのためにn、以下の文字列式は、スタックの最上部を掛けますスニペットを行いますn。 "("+"({})"*(n-1)+"{})" これはn、すべてスタックの最上位に評価される式を作成することで機能します。最初のものn-1は実際には何も変更せず、最後のものはプッシュの前にスタックのトップを削除します。 複合数値の場合、複数の小さな式を連結してバイトを節約できます。たとえば、5を2回掛けることで25を掛けることができます。 (({})({})({})({}){})(({})({})({})({}){}) これは非常に単純であり、いくつかの数値ではかなりうまく機能しますが、これを行うより良い方法があります。たとえば、私が思いついた方法の1つは、数値のバイナリ表現を使用しています。(ここにpythonの実装があります)この新しいメソッドは、前に示した単純な文字列式よりもはるかに効果的ですが、終わりではありません。 だから、私たちがどれほど良いものを得ることができるかを見る時だと思います。 Brain-Flakの簡単な概要 このチャレンジでBrain-Flakについて知っておく必要があるすべての説明を以下に示します。 Brain-Flakには「nilads」と「monads」があります。ニラッドは、中に何もないカッコです。各niladは処理を行い、値を返します。この挑戦のために私達がかかわっている2人のniladsは{}あり<>ます。 {}アクティブなスタックの一番上をポップし、その値を返します。<>アクティブスタックとアクティブスタックを切り替え、アクティブスタックが非アクティブになり、非アクティブスタックがアクティブになるように、ゼロを返します。 モナドは、中に何かがある括弧です。それらは、単一の引数、内部のすべての合計を取り、アクションを実行してから値を返します。懸念しているこれらの3つは(...)、<...>および[...]です。このチャレンジで最も重要なモナド(...)は、内部の値を取得してアクティブスタックにプッシュします。次に、引数を返します。 <...>そして[...]、彼らは任意のアクションを実行するのではなく、彼らが渡された値を変更しないでという、両方の「不活性」モナドです。 <...>渡された引数に関係なく、常にゼロを返します。一方、[...]常に引数timesを返します-1。 説明付きのサンプルプログラム Brain-Flakでプログラミングしたことがない場合は、説明されている操作を使用していくつかのサンプルプログラムを確認することをお勧めします。 ({}{}) これにより、スタックの上位2つの数字が追加されます。それぞれ{}がスタックから値をポップし、(...)合計を押し戻します。 ({}[{}]) 同様に、これはスタックの2番目の項目を最初の項目から減算します。それぞれ{}が値をポップする前と同様ですが[..]、2番目の値の前後で値が追加されます。もう一度(...)合計をプッシュします。 ({}<{}>) これにより、スタックの2番目の値が削除され、トップの値がそのまま維持されます。最後の2つと同じように機能しますが、2つ目の値はによって無音化される<...>ため、プッシュは最初の値のみを押し戻します。 (({})) これにより、スタックの一番上に値の2番目のコピーが作成されます。これは{}、値を取得してスタックの最上部をポップすることでこれを行い、最初に(..)値を評価してその値に戻します。2番目(...)は1番目から返された値を受け取り、それをスタックにプッシュします。2番目のコピーを作成します。 仕事 整数を指定nすると、現在のスタックの最上部にを掛けるスタッククリーンなBrain-Flakスニペットを作成しますn。 次のBrain-Flak操作を使用することが許可されています (...) -> Push Monad, Pushes the result of its contents <...> …

4
実際に整数のメタゴルフ
バックグラウンド 実際(Seriouslyの後継)は、2015年11月に作成したスタックベースの命令型ゴルフ言語です。他の多くのゴルフ言語と同様に、スタックの内容に基づいて異なる機能を実行する1バイトのコマンドがあります。その専門の1つは数学です-多種多様な数学ベースのコマンドがあります。ただし、数学演算を実行するには、スタックに(1つ以上の)数値を配置する必要があります。多くの異なるオプションがあるため、特定の値をできるだけ少ないバイト数でプッシュすることは困難です。この課題では、実際にできる限り少ないバイトで数値(具体的には整数)を表すことを正確に行います。 チャレンジ N入力として整数を指定するNと、スタックにプッシュされる結果となる有効な実際のコードを出力します。 入力は、32ビットの符号付き2の補数整数の範囲内にあります(つまり、包括的範囲の整数[-2147483648, 2147483647])。 結果は整数(float、string、list、またはfunctionではなく)でなければならず、スタックの先頭になければなりません。 スタックの内容について何も仮定しないでください(空かどうかなど)。スタック上の既存の値を変更または再配置してはなりません。 このチャレンジを書いている時点でのActuallyの最新のコミットが使用されることになっています。バグ修正またはパフォーマンスの強化(または許可されたコマンドの機能を削除または変更しないその他の小さな変更)を行った場合、このバージョンを更新します。 ソリューションは、少なくとも単純なソリューション(:数値リテラルを作成するために入力に追加)と同様に実行する必要があります。 スコアは、簡単な解の長さの合計から、スコアリングに使用される1000個の32ビット符号付き2の補数整数の選択の出力の長さの合計を引いたものになります。必要に応じて、スコアリング整数をいつでも変更する権利を留保します(テストケースの最適化や、テストケースの徹底が不十分な場合など)。 ソリューションは、入力ごとに30秒以内に有効な回答を出力する必要があります。タイミングは、標準の無料のCloud9ワークスペースで行われます。 コマンド 簡単にするために、(現在の)208個のコマンドのうち141個のみを使用でき、数値計算とは関係のない141個の多くのオーバーロードが削除されています。許可されるコマンドのリストは次のとおりです(形式は<hex code> (<symbol>): <descriptions of functions based on stack values and types>次のとおりです。 0B (♂): take the next command and map it over the top of the stack (for example, ♂A is equivalent to `A`M) 1F (▼): pop …

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 

1
正規表現の検証正規表現[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 去年閉鎖されました。 入力として正規表現文字列を受け入れ、それが有効かどうかを確認する正規表現を作成します。基本的に、正規表現はそれ自体を検証できるはずです。(無効な正規表現は検証されないため、使用できません.*。;) フレーバーは、よく知られている実装(Perl、sed、grep、gawkなど)によって完全にサポートされている必要があり、それらの実装がサポートするものを完全にサポートしている必要があります。[弁護士が話すことを心配しないでください。私は、スマート***の可能性のある抜け穴を削除しようとしています。] 私はそれをコードゴルフしたいと思いますが、機能が豊富ではないフレーバーを知って使用している人々に優位性を与えるのではないかと心配しています。または、私の心配は根拠がありませんか?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

1
GoogleのHopping Bunny
2017年12月4日、Google Doodleはバニーをフィーチャーしたグラフィカルプログラミングゲームでした。後のレベルは非常に重要であり、アトミックゴルフの挑戦の素晴らしい候補のように見えました。 詳細 ゲーム 次の4つの動きがあります:前方にホップ、左折、右折、ループ。これらの動きのそれぞれが1つのトークンであり、それぞれがゲーム内の1つのタイルであることに対応しています。 バニーは直交する4つの方向(北、南、東、西)に直面できます。 バニーは前に飛び出して(正面を向く方向に1マス移動)、左または右に曲がります。 ループには、他のループを含む他の動きがいくつもあり、それらの反復カウントは正の整数です(ただし、ゲームでは技術的に反復カウント0を許可しています)。 ボードはグリッドに合わせた正方形のセットで、バニーは隣接する正方形の間を飛び回ることができます。 バニーはボイドに飛び込むことができません。ボードから飛び降りようとしても何もしないという意味です。(これは明らかに一部の人々にとっては驚きであり、他の人々にとっては失望でした。) 四角はマーク付きまたはマークなしのいずれかです。バニーが正方形の上にあるとき、それはマークされます。 すべての正方形がマークされると、レベルが完了します。 ソリューションが存在すると仮定することができます。 あなたのコード 目的:ボードを指定して、1つ以上の最短の解決策を見つけます。 入力はボードを形成する正方形の位置のリスト(マークされた正方形とマークされていない正方形を区別する)であり、出力は動きのリストです。入力形式と出力形式は、人間が判読できて理解できるものである限り重要ではありません。 勝利基準:各ボードで1分以内に見つかった最短のソリューションの移動数の合計。プログラムが特定のボードのソリューションを見つけられない場合、そのボードのスコアは(5 *正方形の数)です。 ソリューションをハードコードしないでください。あなたのコードは、以下の例として与えられたものだけでなく、入力としてどんなボードでも取ることができるはずです。 例 最初にゲームをプレイし、これらのいくつかを自分で試す機会を与えるために、ソリューションはネタバレに隠されています。また、それぞれについて以下のソリューションが1つだけ提供されます。 Sはバニーの開始広場(東向き)、#マークのない広場、Oマークのある広場です。動きの場合、私の表記はF=前方へのホップ、L=左折、R=右折であり、時間LOOP(<num>){<moves>}を反復<num>して<moves>毎回行うループを示します。ループが最小数を超えて何度でも実行できる場合は、<num>省略できます(つまり、無限大が機能します)。 レベル1: S## FF レベル2: S## # # ループ(2){FFR} レベル3: S## # # ### ループ{FFR} レベル4: ### # # ##S## # # ### LOOP {F LOOP(7){FL}}(DJMcMayhemにより発見) レベル5: ##### # …

1
Kolmogorov Complexity Solverを書く
文字列Sのコルモゴロフの複雑さは、出力が正確にSであるプログラミング言語Lで書かれた最短プログラムPの長さです。(はい、実際の定義はより形式的ですが、これは課題に十分です。) この挑戦であなたの仕事は、で書かれたプログラムであり、可能な限り最短の「コルモゴロフ複雑性ソルバー」、書くことであるLの文字列を取り込み自体Sと最短返しPで書かれたL出力というSを。 これに対する単純なアプローチは、すべての長さ1のプログラム、次にすべての長さ2のプログラム、すべての長さ3のプログラムなどを繰り返し、それぞれを実行して、Sを出力するプログラムが見つかるまで出力を測定することです。このアプローチの問題は、これらのプログラムの一部が実行を停止しない可能性があることです。つまり、ソルバー自体が停止することはありません。そして、停止する問題のため、停止しないプログラムを回避する確実な方法はありません。 単純ですが不完全な解決策は、潜在的なPのそれぞれの実行時間に時間制限を設けることです。時間内に停止しないプログラムは渡されますが、ソルバーは確実に停止します(Lのプログラムが実際に制限時間内にSを出力できると仮定)。 チャレンジ ソルバーは、次の3つのことを行うプログラムまたは関数として記述します。 文字列S。 秒単位の制限時間またはそれより短い時間範囲(ミリ秒など)である正の整数T。 文字列Aの潜在的に使用する文字のアルファベットのPさん。 また、Aの文字のみを含む最短のPを出力し、T時間単位未満で実行し、Sを出力します。 これは一般的な擬似コードです。 Function KolmogorovComplexitySolver(S, T, A): Assign N to 0 Loop until function returns: In any order, iterate over all strings of length N that only contain characters from *A*. Call the current string P: Execute P, saving the output to …

2
ブール式の圧縮
構文 ~ない /\と \/もしくは t真 f偽 P、Q、FISH、など:変数 (演算子は優先順位の順に与えられます) 前書き 一部のブール式は、短くするために異なる形式に変更できます。たとえば、式 ~(~P /\ ~Q) 短い形式に変更できます P\/Q 数式 P \/ ~P 短い形式に変更できます t チャレンジ この課題では、のみ使用して、任意のブール式が与えられると、そのプログラムの書き込みに必要とされる/\、\/、~、t、f複数の最短形態が存在し得るので、括弧、ブール(大文字で)変数、および空白を、(最短形式を出力します)変数のすべての割り当てに相当する式の文字。最短のコード(すべての言語)が勝ちます。I / Oは、合理的な方法で実行できます。 また、答えを確認するのは難しいので、コードがどのように機能するかの簡単な説明を含めると役立ちます(ただし、必須ではありません)。


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