Loading article…
数学において、ネガフィボナッチ コーディングは、ゼロ以外の整数をバイナリコード ワードにエンコードする汎用コードです。正の整数と負の整数の両方を表現できることを除いて、フィボナッチ コーディングに似ています。すべてのコードは「11」で終わり、末尾の前に「11」はありません。
エンコード方法
次の手順では、ゼロ以外の整数 をエンコードする方法を説明します。 はネガフィボナッチ数列を表すことに注意してください。
- が正の場合、-1 から -2 のステップでネガフィボナッチ数列の奇数の負の項の合計がより大きいか等しい最大の奇数の負の整数を計算します。が負の場合、 0 から-2 のステップでネガフィボナッチ数列の偶数の負の項の合計がより小さいか等しい最大の偶数の負の整数を計算します。
- バイナリワードのビットに 1 を追加します。から減算します。
- xの新しい値が0 に達するまで、手順 1 からのプロセスを繰り返します。
- 結果のバイナリ ワードの左側に 1 を追加して、エンコードを終了します。
エンコードされたバイナリ ワードをデコードするには、バイナリ ワードから左端の 1 を削除します。これは、エンコードされた数値の末尾を示すためだけに使用されているためです。次に、残りのビットに -1 からのネガフィボナッチ数列の値 (1、-1、2、-3、5、-8、13...) を割り当て、1 に関連付けられたすべての値を合計します。
ネガフィボナッチ表現
ネガフィボナッチ コーディングは、数学者が時々使用する位置記数法であるネガフィボナッチ表現と密接に関連しています。特定の非ゼロ整数のネガフィボナッチ コードは、その整数のネガフィボナッチ表現とまったく同じですが、桁の順序が逆で、末尾に「1」が追加されています。すべての負の数のネガフィボナッチ コードの桁数は奇数ですが、すべての正の数のネガフィボナッチ コードの桁数は偶数です。
テーブル
-11 から 11 までの整数のコードは以下の通りです。
参照
参考文献
引用文献
- クヌース、ドナルド (2008)。「ネガフィボナッチ数と双曲面」アメリカ数学協会年次総会。カリフォルニア州サンノゼ。
- Knuth, Donald (2009)。『The Art of Computer Programming』、第 4 巻、第 1 巻: ビット単位のトリックとテクニック、二分決定図。Addison -Wesley。ISBN 978-0-321-58050-4。セクション7.1.3の出版前草案では、特に36~39ページを参照してください。
- マーゲンシュテルン、モーリス (2008)。双曲空間におけるセルオートマトン。非従来型コンピューティングとセルオートマトンにおける進歩。第 2 巻。同時代のアーカイブ。p. 79。ISBN 9782914610834。
