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

この課題は、BF言語に関連しています。回答が特定の言語であることが必要な課題は、一般的に推奨されないことに注意してください。

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 

3
より長い言語プログラムを作成する
Lenguageは、ソース制限の課題を解決することで有名な頭の痛い方言です。これは、Lenguageがコンテンツではなくソースの長さのみを考慮しているためです。 まず、プログラムの長さが計算されます。次に、上記の長さをバイナリに変換し、ゼロで左に3の倍数でパディングします。結果のバイナリ文字列は3ビットのチャンクに分割され、それぞれがBrainfuckコマンドに変換されます。 000 -> + 001 -> - 010 -> > 011 -> < 100 -> . 101 -> , 110 -> [ 111 -> ] 最後に、プログラムはbrainfuck 1として実行されます。 ここからの挑戦は非常に簡単です。入力を受け取らず、回繰り返される整数で構成される出力を生成する言語プログラムを作成します。ここで、は厳密にプログラムの長さよりも大きくなります。nnnnnn 回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。 Brainfuckから言語を計算するためのハックプログラムです。 1:この課題では、ラッピングセルと非ラッピングテープを使用します。

9
単項へのBrainf ** kおよび戻る
制限されたソースおよび他のそのような課題に非常に有用である言語がある単項、プログラムは一つだけの文字で書かれているbrainfuck誘導体。あなたの仕事は、プログラムをBrainfuckから単項に変換するプログラムと、逆のプログラムを作成することです。両方のプログラムは同じ言語で作成します。スコアは、2つのプログラムの長さの合計になります。 どのようにブレインファックから単項式に変換しますか? この表に従って、最初にあなたのコードをバイナリに変換します: 次に、コードを1つの巨大な2進数にコードの順序で連結します。 1文字列の先頭にa を付けて、一意の2進数を確保します。 任意の文字を使用して、2進数から単項数に変換します。 例:+.だろう000000000000000000000000000000000000000000000000000000000000000000000000000000000000(84ゼロ)。 Brainfuck->単項仕様 結果のプログラムは信じられないほど巨大になるため、実際のプログラムではなく、結果のプログラムの長さだけを印刷します。 stdin、関数argなどを使用して、brainfuckプログラムを文字列として取得し、長さを出力します。 プログラムは常に有効で、8文字しか含まれていません。 単項-> Brainfuckの仕様 上記のアルゴリズムの逆を実装する必要があります。 ここでも問題のサイズが大きいため、入力は単項コードの長さを表す数値になります。 いつもと同じI / Oルール。 プログラムは常に有効で、8文字しか含まれていません。 テストケース Hello World- ++++++[>++++++++++++<-]>.>++++++++++[>++++++++++<-]>+.+++++++..+++.>++++[>+++++++++++<-]>.<+++[>----<-]>.<<<<<+++[>+++++<-]>.>>.+++.------.--------.>>+.=239234107117088762456728667968602154633390994619022073954825877681363348343524058579165785448174718768772358485472231582844556848101441556 フィボナッチ- ++++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++++>++++++++++++++++>>+<<[>>>>++++++++++<<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>[<+>-]>[-]>>>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>>[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<<<++++++++++++++++++++++++++++++++++++++++++++++++.[-]<<<<<<<.>.>>[>>+<<-]>[>+<<+>-]>[<+>-]<<<-]<<++...=13067995222095367150854793937817629722033205198624522624687536186118993888926522550140580142585590431635487113180955099384652678100247403485397450658564826143160529351955621991895221530908461364045400531236124980271740502887704217664044858614821622360156740992393765239123681327824577149595724956207165558106099868913919959549896553103116795519592552089266360725543244154867904980260 これはコードゴルフなので、バイト単位の最低スコアが勝ちです! Unaryで解決策を考えている人はいますか?; P

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

5
BrainF ***で最速のソート
BrainF ***でQuickSortを実装した後、おそらくそれほど速くないことに気付きました。通常の言語でO(1)である操作(配列のインデックス付けなど)は、BFでは大幅に長くなります。チューリングターピットでコーディングしている場合、効率的な並べ替えを行うルールのほとんどは、ウィンドウから除外できます。 そのため、「Fastest BrainF *** Sort Routine Ever」を実装するための課題があります。以下のインタプリタを使用して、すべてのエントリの時間を計ります。インタプリタは、符号なし文字の16Kテープを使用します。テープとセルの両方は、制限を超えて前進/増分するとラップします。EOFを読み取ると、現在のセルに0が設定されます。測定時間には、ソースファイルの解析時間とすべての入力ファイルの処理時間の両方が含まれます。最も速いコードが勝ちます。 テストベクトルは、次のようなエッジケースのソートをテストするために設計されたAsciiファイルのセットになります。 すでにソートされたリスト:「ordered」 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 逆ソートリスト:「逆」 ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! いくつかの一意の値の多くのコピーで構成されるファイル:「onlynine」 ibbkninbkrauickabcufrfckbfikfbbakninfaafafbikuccbariauaibiraacbfkfnbbibknkbfankbbunfruarrnrrrbrniaanfbruiicbuiniakuuiubbknanncbuanbcbcfifuiffbcbckikkfcufkkbbakankffikkkbnfnbncbacbfnaauurfrncuckkrfnufkribnfbcfbkbcrkriukncfrcnuirccbbcuaaifiannarcrnfrbarbiuk 完全にランダムなASCIIファイル:「ランダム」 'fQ`0R0gssT)70O>tP[2{9' 0.HMyTjW7-!SyJQ3]gsccR'UDrnOEK~ca 'KnqrgA3i4dRR8g.'JbjR;D67sVOPllHe,&VG"HDY_'Wi"ra?n.5nWrQ6Mac;&}~T_AepeUk{:Fwl%0`FI8#h]J/Cty-;qluRwk|S U$^|mI|D0\^- csLp~`VM;cPgIT\m\(jOdRQu#a,aGI?TeyY^*"][E-/S"KdWEQ,P<)$:e[_.`V0:fpI zL"GMhao$C4?*x 範囲1..255を超えるランダムファイル: "wholerange" öè—@œ™S±ü¼ÓuǯŠf΀n‚ZÊ,ˆÖÄCítÚDý^öhfF†¬I÷xxÖ÷GààuÈ©ÈÑdàu.y×€ôã…ìcÑ–:*‰˜IP¥©9Ä¢¬]Š\3*\®ªZP!YFõ®ÊÖžáîÓ¹PŸ—wNì/S=Ìœ'g°Ì²¬½ÕQ¹ÀpbWÓ³ »y »ïløó„9k–ƒ~ÕfnšÂt|Srvì^%ÛÀâû¯WWDs‰sç2e£+PÆ@½ã”^$f˜¦Kí•òâ¨÷ žøÇÖ¼$NƒRMÉE‹G´QO¨©l¬k¦Ó 各入力ファイルは最大で255バイトです。 こちらが通訳です。これは、コンソールモードのWindows用に書かれていますが、ポートに簡単にする必要があります:ちょうど置き換えるread_time()とsysTime_to_ms()、プラットフォーム固有の同等物。 使用法: bftime program.bf infile1 [infile2 ...] #include <windows.h> #include <stdio.h> #define MS_PER_SEC 1000.0f #define MAXSIZE (0x4000) #define MAXMASK (MAXSIZE-1) typedef …

27
RLE Brainfuck方言
RLE Brainfuck (BF-RLEに関連) Brainfuck の架空のRLE(Run-Length Encoding)方言は、8つのコマンドの記号を受け入れ、数字も受け入れます。数字は、コマンドの連続した繰り返しの数を表すために使用されるため、ソースコードのランレングスエンコーディングが可能になります。 8>に等しい>>>>>>>>。 長さは常にコマンドの左側にあります。 あなたの仕事は、入力文字列(RLE Brainfuckフラグメント)を通常のBrainfuckプログラムに変換する最短のプログラム/関数を書くことです。 例えば: 入力: 10+[>+>3+>7+>10+4<-]3>2+.>+.7+2.3+.2<2+.>15+.>.3+.6-.8-.2<+.<. アウトプット: ++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>++.>+.+++++++..+++.<<++.>+++++++++++++++.>.+++.------.--------.<<+.<. 各言語のバイトカウントの最短コードが優先されます。

13
フィボナッチ製品
正のフィボナッチ数の一意の合計として、0より大きい数を分解できます。この質問では、可能な最大の正のフィボナッチ数を繰り返し減算することでこれを行います。例えば: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 ここで、フィボナッチ積を上記と同じリストと呼びますが、加算は乗算に置き換えられます。たとえば、f(100) = 89 * 8 * 3 = 2136。 正の整数nを指定して、その数のフィボナッチ積を返すプログラムまたは関数を作成します。 テストケース: 1: 1 2: 2 3: 3 4: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 

1
Brainf ** kデバッガー
あなたの課題は、次のような入力を行うことです(Hello Worldプログラム): ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. プロンプトを出力します(これはになります"> ")。 > その後、ユーザーはプロンプトで何でも入力できます。単純なデバッガには次のコマンドが必要です。 S -ステップ Lステップ実行後に現在の場所を出力します(を参照)。 S(a positive integer) -多くのスペースをステップ L -場所 「ロケーション」という用語は、常にプログラム内のどこにいるかを指します(つまり、命令ポインター)。 このようにフォーマットされています: v +++++++[>+++++++<-]>. これは、プログラムの現在の場所が3番目であることを意味し+ます。 G(an integer) -に行きます これは、その場所に着くまで歩き続けることを意味します。プログラムの最後に到達し、そこに到達していない場合は、単にプログラムを終了します。 負の整数は、末尾から多くの文字を意味します。はい、この手段-0とは異なっている0、と-1最後の文字に2番目です。 このコマンドには何も出力しないでください。 D -ダンプ配列 のようなフォーマット 1, 2, 3, 4, 5 配列がの場合、1, 2, 3, 0, 0, 0, 0, 0, ...出力のみ1, 2, 3。 D(a positive integer) (a …

5
他のコードでBrainf ***グリーティングを非表示にします
目標は、Barney Stinsonの最良の規則を出力するプログラム(明示的なBrainfuck以外のすべて)を作成することです。 新しいものは常に優れています。 正常に解釈されるとき、しかし Legen ...それを待って...日陰だ! Brainfuckインタープリターで処理される場合。 最も人気のある仲間が勝つように。伝説になるまで72時間あります。

3
Brainfuckコンパイラを書く
Brainfuckプログラムを取得し、実行可能なマシンコードにコンパイルするプログラムを作成します。x86、x86_64、jvm(javaバイトコード)またはarmv6をターゲットにし、ELF、a.out、クラスファイル、exe、comの実行可能形式のいずれかを使用できます。実行可能ファイルは、LinuxまたはWindows(またはJavaのいずれか)で動作するはずです。 プログラムも生成された実行可能ファイルも、外部プログラム(別のコンパイラ、アセンブラ、インタプリタなど)を実行することはできません。 最短のコードが優先されます。

3
Brainfuckのビット演算子
あなたの仕事は、以下の二項演算子のそれぞれに対して1つのBrainfuckプログラムを作成することです。各プログラムは、入力から1つまたは2つの8ビット数(AおよびB)を取得し、指定された操作を計算する必要があります。 A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 5つすべてを実装する必要はありません。スコアは次の方法で計算されます。 #totalCharacters + {4000 * #problemsNotCompleted} したがって、有効なスコアはゼロ(最高)から20,000(何も完了していない)までです。 結果を保存する場所や、入力を保存するかどうかは気にしません。8ビットセル、および必要なだけの空のセルを右側にのみ想定します。 最適なメモリ位置に番号がすでにあると仮定することができるので、IO操作を心配する必要はありません。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

4
忙しい脳ビーバー
できるだけ多くのステップを実行しますが、無限ループしない256文字以下のBrainfuckプログラムを作成します。プログラムは入力を受け付けません。 すなわち: 右側に無数のセルがあると仮定します。 A <左端のセルに何もしません。 A -セル値がゼロセットセルです255。 命令は+-<>.すべて、実行時に1つのステップとしてカウントされます。 とき[かが]検出され、それが一歩としてカウントされます。ただし、条件が真であり、制御フローがジャンプする場合、対応する]または再びステップとしてカウントされ[ません。 最も多くのステップを踏むソリューションが勝ちです。 ソリューションにある種のパターンがある場合、同様の長さのプログラムnがとるステップ数の関数を与えることは歓迎されますが、必須ではありません。 指示を数えるために、この修正されたインタープリターを使用できます: 例: ++[-] 検出された命令は++[-]-]であり、プログラムは7ステップ実行されました。

14
ファイルにゼロを埋め込む
今日のタスクは、既存のファイルを取得し、特定のサイズに達するまでゼロを追加することです。 現在のディレクトリ内のファイル名fとバイト数を取得するプログラムまたは関数を作成する必要がありますb。の元のコンテンツを維持しながら、新しいサイズがバイトになるように、末尾にfゼロ(ASCIIバイトではなくヌルバイト)を書き込む必要がありbます。 あなたは、と仮定してよいfことは、当初よりも大きくないと、あなたはそれを完全なアクセス許可を持っていることを、その名前だけでASCII英数字を持っていbますが、同じ大きようなものであってもよいb、と無限の空きディスク容量があること。 f空でないと仮定したり、すでにヌルバイトが含まれていないと仮定したりすることはできません。 実行が終了した後、他の既存のファイルを変更したり、新しいファイルを作成したりしないでください。 テストケース fの内容| b | fの結果の内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空の] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

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 

3
BrainFuckで「A」を1000回印刷
'A'を1000回印刷するのに最適なBrainFuckコード(コードサイズの観点から)は? 私のアプローチは: 「A」をp [0]に設定します 255をp [1]に設定して255 'A'を3回表示する 235をp [1]に設定して235 'A'を表示します これは効果的ではありませんが、乗算のように同時に牽引カウンターを使用する方法を見つけることができません 乗算よりも良いアプローチはありますか? より一般的な質問:可能な限り最小のコードで多数の乗算を行うルールはありますか?

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