Найдено результатов: 1

Как суммировать размеры массива, заданного во время выполнения?

Я работаю над функцией для установления энтропии распределения. Он использует связку, если кто-то знаком с этим. Мне нужно суммировать значения в массиве, основываясь на том, какие измерения являются "cared about."

Пример: рассмотрим следующий пример...

Dimension 0 (across)
_ _ _ _ _ _ _ _ _ _ _ _ _
|_ 0 _|_ 0 _|_ 0 _|_ 2 _|  Dimension 1
|_ 1 _|_ 0 _|_ 2 _|_ 0 _|   (down)
|_ 0 _|_ 3 _|_ 0 _|_ 6 _|
|_ 0 _|_ 0 _|_ 0 _|_ 0 _|

I "care about" dimension 0 only, and "don't care" about the rest (dim 1).
Summing this array with the above specifications will
"collapse" the "stacks" of dimension 1 down to a single 4 x 1 array:

_ _ _ _ _ _ _ _ _ _ _ _ _ 
|_ 1 _|_ 3 _|_ 2 _|_ 8 _|

This can then be summed, or have any operation performed.

Мне нужно сделать это с массивом 'n' измерений, которые могли бы реально be 20. Кроме того, мне нужно быть в состоянии сделать это, заботясь о некоторых размерах и разрушая rest. Мне особенно трудно с этим, потому что я не могу визуализировать 20 измерений :p . Если бы кто-нибудь мог помочь мне настроить некоторый код c/c++ на collapse/sum,, я был бы очень благодарен.

Обновление:

Только что вернулся домой. Вот некоторая информация, чтобы ответить на ваши вопросы:

  1. Извините за откат правок, я надеялся, что когда я нажму откат, он покажет мне изменения, чтобы я мог увидеть, что я испортил, немного похоже на Википедию. Как я выяснил, это был не тот случай.
  2. @jeff-что не имеет смысла? Я использую этот отличный сервис для (что я думаю) законной причины. Я хочу стать лучше в своем хобби, которое все это, как я в средней школе. Многие из моих сообщений касаются реализации генетического алгоритма (этот пост, sparsearray, ранжирование массива, манипуляция указателем).
  3. Я использую разреженное представление массива, поскольку можно превысить количество молекул во Вселенной, используя традиционный (плотный) массив. На данный момент реализация самого sparsearray не имеет большого значения, поскольку я работаю над тем, чтобы заставить его работать со стандартным массивом, прежде чем перейти к разреженному представлению. Для тех, кто не видел мои предыдущие вопросы, я использую двоичное дерево поиска в качестве структуры, содержащей разреженные точки массива, и функцию "driver" для обхода дерева по мере необходимости, возвращая все, что функция предназначена для выполнения. Это является гибким, так что я могу разместить много различных методов доступа к массиву.
  4. Структура является гиперкубом, и количество измерений задается во время выполнения, а также длина каждого измерения (которые все одинаковы, так как это гиперкуб).

Спасибо всем за ваше вменение.

c++   c   arrays   microsoft-dynamics    

454   10   22:33, 26th August, 2020