完璧な四分木のサイズを見つける
-
27-10-2019 - |
質問
完璧な四分木のサイズを見つける必要があります。 これは、4つのノードに分割される1つのルートノードがあり、4つのノードに分割されることを意味します。
したがって、高さ1の四分木はサイズ1になります 高さ2=サイズ5(1 + 4) 高さ3=サイズ21(1 + 4 + 16) 高さ4=サイズ85(1 + 4 + 16 + 64)
など
完全な二分木のサイズは次のように見つけることができます:size= 2 ^(height + 1)-1 したがって、四分木にも同様の方程式が存在すると思います。
それで、それは何ですか?
解決
これは
ここで、a
は最初の値、r
は一般的な比率、n
は用語の数、^
は「to-the-power-of」を示します。
他のヒント
四分木の場合、アルゴリズムは ジェネラコディセタグプレ
たとえば、深さ3の場合 ジェネラコディセタグプレ
そして3つのレイヤーを数えると得られます ジェネラコディセタグプレ
私の実装では、2つの配列に分割しました ここで、ノードを離れるすべてのノードのサイズは ジェネラコディセタグプレ
ノードを離れる ジェネラコディセタグプレ
これらの計算は、コンパイル時にpowのメタプログラミングと深さのテンプレート引数を使用して行います。したがって、ノードを2つの配列に割り当てるだけです。
誰かがコードサンプルを必要とする場合に備えて(swift3) ジェネラコディセタグプレ
所属していません StackOverflow