Войти
ФлеймФорумРазработка игр

Массив протяженностью 10^20

Страницы: 1 2 37 8 Следующая »
#0
14:21, 7 дек. 2014

Для некоторых абстрактных нужд, хочется сделать 2ух-мерный массив протяженностью 10^20 на 10^20. Как я понимаю современные компы просто не потянут такой размер, поэтому нужно сделать как-то по-хитрому. Например вложенными массивами. Может у кого есть какие-то заготовки/идеи по этому поводу?


#1
14:34, 7 дек. 2014

Ren
> Для некоторых абстрактных нужд, хочется сделать 2ух-мерный массив
> протяженностью 10^41.
Обычный разрежённый массив, гугл в помощь

#2
14:37, 7 дек. 2014

Лол, во всем интернете максимум 10^21. 10^41 - это интернет интернетов байт. Клевый массив, что.

#3
14:39, 7 дек. 2014

jaguard
> Лол, в интернете максимум 10^21. 10^41 - это интернет интернетов байт. Клевый
> массив, что.
Гхм, я наверно не совсем правильно написал. Правка:Массив 10^20 на 10^20)))

Hybernaculum

но когда появляются значения, отличные от значений по умолчанию, такой массив становится неэффективным
#4
14:40, 7 дек. 2014

Ren
>
> Гхм, я наверно не совсем правильно написал. Массив 10^41 на 10^41)))

А, то есть примерно число атомов в наблюдаемой вселенной. Это конечно все меняет, да.

#5
14:42, 7 дек. 2014

И понадобится реализация соответствующих целых переменных для индексации. 128 битная позволяет хранить максимум 10^39, так что понадобится что-то еще вместимее.

#6
14:45, 7 дек. 2014

Ren
> но когда появляются значения, отличные от значений по умолчанию, такой массив становится неэффективным
ну тут одно из двух. Или ты выделяешь массиву все его 10^82 байта, либо работаешь неэффективно.

#7
14:46, 7 дек. 2014

jaguard
> А, то есть примерно число атомов в наблюдаемой вселенной. Это конечно все
> меняет, да.
Всего лишь 2Д-размер нашей галактики с шагом 10 метров)

CStalker
> И понадобится реализация соответствующих целых переменных для индексации. 128
> битная позволяет хранить максимум 10^39, так что понадобится что-то еще
> вместимее.
Нет желания хранить все это в одном массиве, ибо, как я понимаю скорость обработки такого массива будет ужасающей))

#8
14:52, 7 дек. 2014

Ren
> Нет желания хранить все это в одном массиве
как бы ты не реализовал свой двухмерный массив, у тебя ведь все равно будет два индекса для указания на каждый элемент, так? Тогда они должны быть 128 битными. Или даже 256 битными.

#9
14:56, 7 дек. 2014

CStalker
> как бы ты не реализовал свой двухмерный массив, у тебя ведь все равно будет два
> индекса для указания на каждый элемент, так?
Это был второй вопрос. Но указание не цифровое-линейное и не двух индексовое меня вполне устраивает. Типа S-0023-EKA-0015

Если не ошибаюсь это уже 26 порядков.

#10
15:11, 7 дек. 2014

Чет я ошибся. 10^20 протяженность, 10^41 - это общее количество ячеек

#11
15:12, 7 дек. 2014

Ren
> но когда появляются значения, отличные от значений по умолчанию, такой массив
> становится неэффективным
Ты начало не прочитал.

Простейшая реализация этого массива выделяет место под весь массив, но когда появляются значения, отличные от значений по умолчанию, такой массив становится неэффективным.

Хм, вообще переводчик просто упорот. Вот как английская версия звучит:
A naive implementation of an array may allocate space for the entire array, but in the case where there are few non-default values, this implementation is inefficient.

Вот как надо перевести:

Простейшая реализация этого массива выделяет место под весь массив, но когда значений отличных от значений по умолчанию мало, такая реализация неэффективна.

---
Так что разреженный массив. А для галактик - просто список систем, между ними все равно пустота. Ну или если есть еще какие-то объекты - их тоже отдельно задать. Облака темной материи - границами или вокселями, корабли - списком.

#12
15:21, 7 дек. 2014

kipar
> А для галактик - просто список систем, между ними все равно пустота
Пустота юзабельна вплоть до каждого пикселя.
Системы в единой координатной сети.
Количество систем - все равно охрененно.

Точно подойдет разряженный массив?

#13
15:24, 7 дек. 2014

Ren
Все зависит от того, как ты планируешь заполнять свой массив

#14
15:33, 7 дек. 2014

CStalker
> Все зависит от того, как ты планируешь заполнять свой массив
Изначально только координаты звезд (ну и параметры звезд) рандомно, с некоторыми ограничениями. Системы генерятся по факту влета игрока (опять же рандомно с условиями). Посещенная система хранится в памяти статично (без движения и прочего). По сути посещенная система становится локацией.
Глубокий космос генерится при влете, стирается при вылете. На то он и глубокий.

Страницы: 1 2 37 8 Следующая »
ФлеймФорумРазработка игр