Блин, даже не знаю...нет времени обьяснять, отвечать каждому в подробностях.
Во-первых, почему кто-то решил, что волшебный массив HR5 - ключ ко всем проблемам и, вообще, лучше сделать нельзя. А если кто-то им не пользуется, то он редиска и нехороший человек...
теперь смотрим знаменитый пост #482 от
GalaxЦитата (Galax @ 11.12.2019)
Благодаря этому удается сжать пятимерный массив невероятных размеров [52, 52, 52, 52, 52] до вполне разумного по размерам одномерного массива.
Вы меня простите, но человек НЕ понимает, что пишет. Нет никакого сжатия до
разумного размера!
Многомерный массив сжимается
всего лишь ровно в 5! = 120 раз, за счёт того что он ВРУЧНУЮ трактует комбинации, одинаковые до перестановки, как одну.
Всё! Больше никакого секрета в нём нет.
Просто я РАНЕЕ предполагал, что хоть массив состоит из ссылок, но строят их на основе какого-то хитрого приведения ВСЕХ возможных перестановок в комбинации к какому-то одному. Этого в массиве нет. Там просто в конце приписывается комбинация. Что, кстати, не исключает ошибок при его заполнении.
В этом смысле
c00l0ne отчасти прав: массив удобен для работы для программиста среднего уровня(никакого не хочу обидеть или в чём-то обвинить).
Почему я решил вернуться к массиву, когда практически всё написал "на дереве"?
Да просто дерево у меня пока не нагружено. И вместо обязательной проверки 52 ответвлений, я перескакивал по существующим ответвлениям(около 5). Также по этой причине во всех алгоритмах я делал поиск по все существующим ответвлениям, а не сразу прыгал на нужное ответвление.
(например, ищу ТИГР. Нахожу Т, спускаюсь на уровень ниже...начинаю искать И...этого можно и не делать, а сразу переходить к ответвлению "И", которое будет А...И - 10ым по счёту).
Вы скажите: обратиться к 50му элементу массива быстрее, чем 50раз прыгать с начала дерева.
Но я провёл эксперимент и выяснил, что 50 рандомных перескоков по ячейкам памяти по времени практически равносильно перескоку к ячейки памяти с адресом = адрес +50.
К тому же, мы не знаем, как на самом деле хранится огромный массив в памяти. Сомневаюсь, что это 1кк ячеек
подряд. Возможно, это 200кк в одной области, 200кк ещё где-то и 600кк ещё где-то. То есть перескоки будут и в случае обращения к массиву.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
На этом холиварные войны прощу закончить.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Чуть попозже выложу основные параметры моей прожки. Точнее, для версии 1.0
Там всё будет на "деревьях". Вот доведём её до конца, и, если будет тормозить, буду переписывать на "массивах".
странно, при разговоре ты говорил, что это очень сложно ))
Приведи тогда значения для 17, 18 и 19 очков. Сравним со значениями Жака
мне это не интересно. Эффективность кода(алгоритма) кол-вом строчек не определяется.