Результаты поиска
Как суммировать размеры массива, заданного во время выполнения?
Я работаю над функцией для установления энтропии распределения. Он использует связку, если кто-то знаком с этим. Мне нужно суммировать значения в массиве, основываясь на том, какие измерения являются "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,, я был бы очень благодарен.
Обновление:
Только что вернулся домой. Вот некоторая информация, чтобы ответить на ваши вопросы:
- Извините за откат правок, я надеялся, что когда я нажму откат, он покажет мне изменения, чтобы я мог увидеть, что я испортил, немного похоже на Википедию. Как я выяснил, это был не тот случай.
- @jeff-что не имеет смысла? Я использую этот отличный сервис для (что я думаю) законной причины. Я хочу стать лучше в своем хобби, которое все это, как я в средней школе. Многие из моих сообщений касаются реализации генетического алгоритма (этот пост, sparsearray, ранжирование массива, манипуляция указателем).
- Я использую разреженное представление массива, поскольку можно превысить количество молекул во Вселенной, используя традиционный (плотный) массив. На данный момент реализация самого sparsearray не имеет большого значения, поскольку я работаю над тем, чтобы заставить его работать со стандартным массивом, прежде чем перейти к разреженному представлению. Для тех, кто не видел мои предыдущие вопросы, я использую двоичное дерево поиска в качестве структуры, содержащей разреженные точки массива, и функцию "driver" для обхода дерева по мере необходимости, возвращая все, что функция предназначена для выполнения. Это является гибким, так что я могу разместить много различных методов доступа к массиву.
- Структура является гиперкубом, и количество измерений задается во время выполнения, а также длина каждого измерения (которые все одинаковы, так как это гиперкуб).
Спасибо всем за ваше вменение.