私の現在のサイド プロジェクトでは、3x3x3 マルコフ連鎖を使用する必要があります。私が思いついた最初の実装は、マトリックス内の各位置をその位置に移動する機会にすることです (すべての位置の値の合計が 1 になる場所)。マトリックスの値に応じて、これは次のようになります。
- 平均13.5回の比較
- 1つの比較の最良のケース
- 27 回の比較の最悪のケース
私の次のアイデアは、各行とレイヤーの合計を追加のクラス変数配列として格納することです。これにより、次の場所で正しい位置を見つけることができます。
- 平均 4.5 回の比較 (レイヤーの検索に 1.5 回、行の検索に 1.5 回、位置の検索に 1.5 回)
- 3つの比較の最良のケース
- 9回の比較の最悪のケース
これは実装比較に関してははるかに優れていることがすでにわかりますが、保存する必要がある余分なデータもあります。
これを実装するより良い方法はありますか?