分布のエントロピーを確立する関数に取り組んでいます。それに精通している場合は、コピュラを使用します。どの次元が「気になる」かに基づいて、配列内の値を合計する必要があります。
例:次の例を考えてみましょう...
次元0(全体) _ _ _ _ _ _ _ _ _ _ _ _ _ | _ 0 _ | _ 0 _ | _ 0 _ | _ 2 _ | 次元1 | _ 1 _ | _ 0 _ | _ 2 _ | _ 0 _ | (下) | _ 0 _ | _ 3 _ | _ 0 _ | _ 6 _ | | _ 0 _ | _ 0 _ | _ 0 _ | _ 0 _ | 私は次元0のみを「気にし」、残りは「気にしない」(薄暗い1)。 この配列を上記の仕様と合計すると、 次元1の「スタック」を単一の4x1配列に「折りたたむ」: _ _ _ _ _ _ _ _ _ _ _ _ _ | _ 1 _ | _ 3 _ | _ 2 _ | _ 8 _ | 次に、これを合計するか、任意の操作を実行できます。
'n'次元の配列を使用してこれを行う必要があります。これは、実行可能に20になる可能性があります。また、特定の次元を考慮し、残りを折りたたむことで、これを実行できる必要があります。20次元を視覚化できないため、これで特に苦労しています:p。誰かがc/c ++コードを折りたたみ/合計するように設定するのを手伝ってくれるなら、私は非常に感謝しています。
アップデート:
家に着いたばかり。ここにあなたの質問に答えるためのいくつかの情報があります:
- 編集をロールバックして申し訳ありませんが、ロールバックをクリックすると変更が表示され、ウィキペディアのように混乱した内容を確認できると期待していました。私が知ったように、これはそうではありませんでした。
- @jeff-何が意味をなさないのですか?私はこの素晴らしいサービスを(私が思うに)正当な理由で使用しています。高校生なので趣味はもっと上手になりたいです。私の投稿の多くは、遺伝的アルゴリズムの実装に関するものです(この投稿、sparsearray、配列のランク付け、ポインター操作)。
- 従来の(密な)配列を使用すると、宇宙の分子の数を超える可能性があるため、スパース配列表現を使用しています。今のところ、スパース表現に進む前に標準配列で動作するように取り組んでいるので、スパース配列自体の実装はそれほど重要ではありません。以前の質問を見たことがない人のために、スパース配列ポイントを含む構造としてバイナリ検索ツリーを使用し、必要に応じてツリーをトラバースする「ドライバー」関数を使用して、関数が実行するように設計されているものを返します。これは柔軟性があるので、配列にアクセスするためのさまざまな方法に対応できます。
- 構造はハイパーキューブであり、ディメンションの数は実行時に指定され、各ディメンションの長さも指定されます(ハイパーキューブであるため、これらはすべて同じです)。
あなたの入力をみんなに感謝します。