問題タブ [brainfuck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1112 参照

brainfuck - ブレインファックチャレンジ

私はあらゆる挑戦をしています。私は頭がおかしいコードを書かなければなりません。

与えられた数 n について、その最後の桁を指定します。

入口

入力は、整数 n ( 1 < = n < = 2,000,000,000 ) が 1 つしかない 1 行だけで構成され、その後に改行 ' \ n' (ASCII 10) が続きます。

出口

出力では、 n の最後の桁を示す整数を正確に 1 つ見つける必要があります。

例Ⅰ 入口:32 出口:2

例 II: 入口: 231231132 出口: 2

これは私が試したものですが、うまくいきませんでした:

0 投票する
4 に答える
1282 参照

algorithm - セル内の数値が偶数か奇数かを調べる

テープの 0 番目のセルの数字が埋められ、残りはすべてスクラッチ セルとして使用されている場合 (つまり、それらはすべて 0 から始まり、一時的なものです。それらがどうなろうと気にしません)、置き換えたいと思います。 0 または 1 を持つ 0 番目のセル。偶数の場合は 0、奇数の場合は 1。

基本的に、私がやりたいことは(C風の擬似コードで)です:

次のように定義されたdivmod アルゴリズムが存在することを知っています。

n を保持する必要がない場合は、次のバリアントを使用します。

ただし、X % 2 == X & 1つまり X mod 2 は X の右端のビットなので、計算の複雑さの点で divmod はやり過ぎかもしれないと思います。

セルが偶数かどうかを調べるためのより良いアルゴリズム/手法はありますか?

0 投票する
1 に答える
243 参照

algorithm - 難読化されたコード: 最後の桁

次のことを行うために、brainfuck 言語で難読化されたコードを作成するという課題があります。

与えられた数値 n について、その最後の桁を出力します。

入力

入力は、整数 n ( 1 < = n < = 2,000,000,000 ) が 1 つしかない 1 行だけで構成され、その後に改行 ' \ n' (ASCII 10) が続きます。

出力

出力では、n の最後の桁を表す整数を 1 つだけ見つけなければなりません。

例 入力: 32 出力: 2

例 II: 入力: 231231132 出力: 2

これは私が試したものですが、うまくいきませんでした:

0 投票する
1 に答える
161 参照

python - 自己変更 Brainf*** の Python インタープリターにバグがあります

この Python インタープリターは、Self-modifying Brainf*** (SMBF) と呼ばれる言語用に作成しました。今日、プログラムが最初のセルまたはテープの後にコードを動的に作成すると、実行されないというバグを発見しました。このインタープリターは、リンク先のページの Ruby インタープリターにできるだけ近くなるように作成しました。このバグは、元の Ruby インタープリターにも存在する可能性があることに注意してください。私は知りません、私はそれを使用していません。

SMBF が通常の BF と異なる点は、ソース コードがテープ上のポインターの開始セルの左側に配置されていることです。したがって、プログラム<.はソースの最後の文字 (ピリオド) を出力します。これは機能します。

一部のコードを削除したため、まだ実行可能ですが、この投稿ではスペースが少なくて済みます。

通訳:

問題:

この行は、私がプログラムを設定する方法です (これを Ideone.com で実行できるようにします)。

.プログラムは、現在のセル (ピリオド) を出力する必要がある ASCII の 10 進数値である 46 になるまでセルに追加します。しかし、何らかの理由で、プログラム カウンターpcがそのセルに到達しません。見つけたすべてのコードをテープの最後までプログラムに実行させたいのですが、テープの中心を考慮してプログラム カウンターを取得するのに苦労しています。でサイズ変更され__setitem__ます。

関連する行は(私が試していたものです):

もともとはこれでした:

だから私はwhileラインを調整する必要があるとwhile True:思う.try/exceptchr(self.tape[pc])

誰が何が間違っているのか、それを修正する方法を見ていますか?

0 投票する
1 に答える
289 参照

string - 270文字のbrainf*ckで178文字の文字列を出力する

ブレインファックで 178 文字の文字列を出力しようとしています。これは、270 文字のブレインファックに制限されていることを除けば、問題にはなりません。双方向ハッシュ関数を使用して 178 文字の文字列をハッシュすることを考えていましたが、機能する解決策を見つけるのに苦労していました。文字列は次のとおり"Wikipedia is the best thing ever. Anyone in the world can write anything they want about any subject, so you know you are getting the best possible information." - Michael Scottです。

いくつかの ascii->brainfuck プログラムで文字列をまっすぐに実行すると、約 1,409 文字が得られますが、目標の 270 文字からはほど遠いです。約 60 文字の文字列で Brainfuck コードを作成できるはずです。私の質問は、上記の文字列を後でデコードして文字列に戻すことができる 60 文字の文字列に変換する方法はありますか?

0 投票する
1 に答える
110 参照

python - 機能しているように見える私の BF インターペレタは、標準の BF プログラムを実行できません

これは私のinterpereterのコードです:

このプログラムを実行すると:

私はの結果を得る

このプログラムは、他の bf インターペリターで機能する 'hello world' プログラムです。出力が ASCII に変換されても、「Hello World」ではありません。 私のインターペリターについて指摘できる大きな問題はありますか? コマンドは正しいですか?

0 投票する
2 に答える
823 参照

brainfuck - ポインターの位置 - 0 または特定の位置に移動 (範囲外かどうかを確認)

私はブレインファックの初心者で、最初の一歩を踏み出し始めたばかりです。ポインターが範囲外にあるかどうかを確認するための巧妙な方法 (少しハックであっても) を見つけるための助けが必要です。したがって、メモリ配列の最初のセルにいることを確認し、ポインタをそれ以上減少させないようにしたいと考えています。これをグーグルで検索してみましたが、何も見つかりませんでした。誰かがアイデアを持っていれば、それが純粋なロジックでコードがなくてもありがたいです。

<<<<.どうやら、誰かがメモリ配列の最後でラップするようなコードを書いても、頭がおかしいインタープリターの多くは行き詰まらないようです。ただし、それらのいくつかは立ち往生しています。したがって、これが非常にインタープリター固有の質問である場合は、少し一般化させてください。既存の位置に関係なく、メモリ配列内の特定の位置に移動する方法はありますか?