Тип данных для многомерного массива, который продолжает расти в зависимости от предыдущих значений ячеек - PullRequest
0 голосов
/ 21 января 2012

Я ищу элегантный тип данных и метод для решения этой проблемы ниже в среде Java или dot Net (C # или VB.net)

Это (rxc) матрица чисел (целых чисел).Значения 1-го столбца - это одномерный массив (диапазон чисел).2-й столбец принимает различный диапазон значений для каждого из 1-го значения столбца (таким образом, это в основном двумерный зубчатый массив).3-й столбец имеет диапазон значений для каждой пары значений 1-го и 2-го столбцов (когда 1-й и 2-й столбцы зафиксированы со значением, 3-й столбец принимает диапазон значений).Количество столбцов не является фиксированным и зависит от ввода пользователя.Оно может доходить до 20 или даже больше

Как эффективно решить эту проблему в Java или C # или VB.net.

Я связываю изображение с уравнением, которое хочу запрограммировать, image http://s08.site50.net/stackov/f1.jpg, в которой C и S являются некоторыми константами.i = 1,2,3 ... r (количество строк) и k-1 = 0,1,2,3..c (количество столбцов).Диапазон R (i, k-1) зависит от максимального и минимального значений, и МОЖЕТ также зависеть от предыдущих значений из R (1, k), R (2, k) ... R (i-1, k-1)) согласно уравнению.Начальные известные значения являются фиксированными целыми числами (не в диапазоне) для R (1, c), R (2, c), ..., R (r, c)

1 Ответ

0 голосов
/ 21 января 2012

Надеюсь, я правильно понял ваше требование.Мне кажется, что каждая строка вашей матрицы представляет собой рекурсивный тип данных (назовем его MultiJaggedList), где каждый объект имеет Integer плюс список MultiJaggedList с.Итак, если вы создаете MultiJaggedList<T> универсальный класс с членами типа T и List<MultiJaggedList<T>>, то вы можете просто использовать List<MultiJaggedList<Integer>> для своей матрицы.Затем первый столбец вашей матрицы - это целые числа в объектах, которые находятся непосредственно в списке.Значения во втором столбце - это целые числа на следующем уровне в структуре и т. Д.

...