8.2.14. Хэш как разреженная матрица
8.2.14. Хэш как разреженная матрица
Часто в массиве или матрице заполнена лишь небольшая часть элементов. Можно хранить их как обычно, но такое расходование памяти неэкономно. Хэш позволяет хранить только реально существующие значения.
В следующем примере предполагается, что несуществующие значения по умолчанию равны нулю:
values = Hash.new(0)
values[1001] = 5
values[2010] = 7
values[9237] = 9
x = values[9237] # 9
y = values[5005] # 0
Ясно, что обычный массив в таком случае содержал бы более 9000 неиспользуемых элементов, что не всегда приемлемо.
А если нужно реализовать разреженную матрицу размерности два или более? В этом случае можно было бы использовать массивы в качестве ключей:
cube = Hash.new(0)
cube[[2000,2000,2000]] = 2
z = cube[[36,24,36]] # 0
Здесь обычная матрица содержала бы миллиарды элементов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Матрица сайта
Матрица сайта Матрица – формат представления структуры сайта, удобный при изучении крупных проектов.Матрица сайта (рис. 10.2):? по горизонтали – категории сайта (ноутбуки, пылесосы);? по вертикали – шаблоны страниц (карточки товаров, каталог товаров);? на пересечении – типы
§ 137. Матрица эмоций
§ 137. Матрица эмоций 12 октября 2006Любой человек без труда покажет, где находятся верх и низ. Практически все согласятся с тем, что направление вперед смотрит направо, а назад — налево. Это подкрепляется и направлением письма в западной культуре, и ходом часовой стрелки
3.1. Матрица – «сердце» цифровой камеры
3.1. Матрица – «сердце» цифровой камеры Главное различие цифровых и пленочных камер в том, что цифровая картинка создается не на пленке, а на светочувствительном электронном сенсоре. Это самая важная часть цифровой камеры, которая и определяет качество изображения.
FERRMA: Матрица. Эволюция
FERRMA: Матрица. Эволюция Автор: Денис Степанцов"Историографы" до сих пор расходятся во мнениях, что считать первой цифровой камерой. Кто-то ссылается на первую модель Sony Mavica 1981 года, записывающую снимки на дискеты; кто-то ведет отсчет от 1991-го, когда Kodak с Nikon, объединив