問題タブ [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.
brainfuck - ブレインファックチャレンジ
私はあらゆる挑戦をしています。私は頭がおかしいコードを書かなければなりません。
与えられた数 n について、その最後の桁を指定します。
入口
入力は、整数 n ( 1 < = n < = 2,000,000,000 ) が 1 つしかない 1 行だけで構成され、その後に改行 ' \ n' (ASCII 10) が続きます。
出口
出力では、 n の最後の桁を示す整数を正確に 1 つ見つける必要があります。
例Ⅰ 入口:32 出口:2
例 II: 入口: 231231132 出口: 2
これは私が試したものですが、うまくいきませんでした:
algorithm - セル内の数値が偶数か奇数かを調べる
テープの 0 番目のセルの数字が埋められ、残りはすべてスクラッチ セルとして使用されている場合 (つまり、それらはすべて 0 から始まり、一時的なものです。それらがどうなろうと気にしません)、置き換えたいと思います。 0 または 1 を持つ 0 番目のセル。偶数の場合は 0、奇数の場合は 1。
基本的に、私がやりたいことは(C風の擬似コードで)です:
次のように定義されたdivmod アルゴリズムが存在することを知っています。
n を保持する必要がない場合は、次のバリアントを使用します。
ただし、X % 2 == X & 1
つまり X mod 2 は X の右端のビットなので、計算の複雑さの点で divmod はやり過ぎかもしれないと思います。
セルが偶数かどうかを調べるためのより良いアルゴリズム/手法はありますか?
algorithm - 難読化されたコード: 最後の桁
次のことを行うために、brainfuck 言語で難読化されたコードを作成するという課題があります。
与えられた数値 n について、その最後の桁を出力します。
入力
入力は、整数 n ( 1 < = n < = 2,000,000,000 ) が 1 つしかない 1 行だけで構成され、その後に改行 ' \ n' (ASCII 10) が続きます。
出力
出力では、n の最後の桁を表す整数を 1 つだけ見つけなければなりません。
例 入力: 32 出力: 2
例 II: 入力: 231231132 出力: 2
これは私が試したものですが、うまくいきませんでした:
python - 自己変更 Brainf*** の Python インタープリターにバグがあります
この Python インタープリターは、Self-modifying Brainf*** (SMBF) と呼ばれる言語用に作成しました。今日、プログラムが最初のセルまたはテープの後にコードを動的に作成すると、実行されないというバグを発見しました。このインタープリターは、リンク先のページの Ruby インタープリターにできるだけ近くなるように作成しました。このバグは、元の Ruby インタープリターにも存在する可能性があることに注意してください。私は知りません、私はそれを使用していません。
SMBF が通常の BF と異なる点は、ソース コードがテープ上のポインターの開始セルの左側に配置されていることです。したがって、プログラム<.
はソースの最後の文字 (ピリオド) を出力します。これは機能します。
一部のコードを削除したため、まだ実行可能ですが、この投稿ではスペースが少なくて済みます。
通訳:
問題:
この行は、私がプログラムを設定する方法です (これを Ideone.com で実行できるようにします)。
.
プログラムは、現在のセル (ピリオド) を出力する必要がある ASCII の 10 進数値である 46 になるまでセルに追加します。しかし、何らかの理由で、プログラム カウンターpc
がそのセルに到達しません。見つけたすべてのコードをテープの最後までプログラムに実行させたいのですが、テープの中心を考慮してプログラム カウンターを取得するのに苦労しています。でサイズ変更され__setitem__
ます。
関連する行は(私が試していたものです):
もともとはこれでした:
だから私はwhile
ラインを調整する必要があるとwhile True:
思う.try/except
chr(self.tape[pc])
誰が何が間違っているのか、それを修正する方法を見ていますか?
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 文字の文字列に変換する方法はありますか?
python - 機能しているように見える私の BF インターペレタは、標準の BF プログラムを実行できません
これは私のinterpereterのコードです:
このプログラムを実行すると:
私はの結果を得る
このプログラムは、他の bf インターペリターで機能する 'hello world' プログラムです。出力が ASCII に変換されても、「Hello World」ではありません。 私のインターペリターについて指摘できる大きな問題はありますか? コマンドは正しいですか?
brainfuck - ポインターの位置 - 0 または特定の位置に移動 (範囲外かどうかを確認)
私はブレインファックの初心者で、最初の一歩を踏み出し始めたばかりです。ポインターが範囲外にあるかどうかを確認するための巧妙な方法 (少しハックであっても) を見つけるための助けが必要です。したがって、メモリ配列の最初のセルにいることを確認し、ポインタをそれ以上減少させないようにしたいと考えています。これをグーグルで検索してみましたが、何も見つかりませんでした。誰かがアイデアを持っていれば、それが純粋なロジックでコードがなくてもありがたいです。
<<<<.
どうやら、誰かがメモリ配列の最後でラップするようなコードを書いても、頭がおかしいインタープリターの多くは行き詰まらないようです。ただし、それらのいくつかは立ち往生しています。したがって、これが非常にインタープリター固有の質問である場合は、少し一般化させてください。既存の位置に関係なく、メモリ配列内の特定の位置に移動する方法はありますか?