2016-12-17 11 views
0

リスト内のnot操作(およびほぼすべての操作)に問題があります。リストで意味することは、0 i1 i2 i3 ... in 1 in 0 in unknown nbrainf_ckがリスト内で操作されていません

私のプログラムでは、私はそのリストの中の未知のインデックスにあり、0であるかどうかを確認する必要があります notアルゴリズムでは、一時的な値が必要ですが、[<]または[>]を使用してその値に到達することができますが、リストの値は失われます。

リマインダー:A = 0アルゴリズムは、このように書き:

t0[-]+ a[t0-] t0[ <code> ]
私が思い付くことができる唯一の事は、各指標間の1を残しているが、それは非常に非エレガントなようです。

私の質問です:これを行うには良い方法はありますか?

答えて

0

実際には、各要素の間の1は実際にそれを行うより効率的な方法の1つです。その後、あなたはゼロを満たし、シーケンスのどの端にあなたがいるか、そしてどれくらいあるかを知るまで前後に歩いていくだけです。また、各操作の後にクリアするのも簡単です。

要素ごとに1つのセルのみを使用する方法がありますが、すべての要素を1つの位置から左に移動し、各操作ごとにすべて戻す必要があります。場合によっては、各要素に小さな値しか格納せず、要素がたくさんある場合は、これがより高速になる場合もあります。

あなたが達成したいことに依存します。個人的には、1秒の軌跡を残して後でクリアする最初の選択肢は、一般的なケースでは通常かなり速いので、2倍のスペースが必要ですが、より良いオプションだと思います。

関連する問題