LINUX.ORG.RU
ФорумTalks

А кто-то вообще разобрался, что пытались сказать журналисты про Hash Map?

 , ,


0

2

В своей работе 1985 года информатик Эндрю Яо, позже ставший лауреатом премии Тьюринга, доказал, что для хеш-таблиц с открытой адресацией лучший способ поиска элемента или пустой ячейки — это случайный перебор возможных мест. Такой подход называется универсальным хешированием. Яо также предположил, что в худшем случае, когда необходимо найти последнюю свободную ячейку, нельзя обойтись без затрат времени, пропорциональных x. Если хеш-таблица заполнена на 99%, то, вероятно, придется проверить около 100 разных позиций, чтобы найти свободное место.

В конце 2021 года на тот момент студент Ратгерского университета Эндрю Крапивин (в своей недавней презентации исследователь представляется именно так; в 2020 году в беседе с жившим в Украине дедом он называл себя Андреем) случайно наткнулся на публикацию про уменьшение размеров указателей в памяти компьютера. Через несколько лет он вернулся к этой статье, перечитал ее и понял, что можно добиться того, что указатели будут занимать еще меньше памяти. Однако для этого нужно улучшить саму организацию данных, к которым указатели будут направлять.

Крапивин обратил внимание на хеш-таблицы и в процессе работы неожиданно для себя создал их новый тип, который оказался значительно быстрее. Его таблица позволяла находить элементы за меньшее время и с меньшими усилиями.

Ссыкли:

Что конкретно предлагает-то? Я просмотрел его презентацию, но сложилось впечатление, что парень переизобрел то ли последовательный сдвиг индекса если ячейка занята, то ли хранить в ячейке не один элемент, а список элементов с одним хэшом.

Соль то в чем?

P.S. Также в тред приглашаются свидетели движения «математика программисту не нужна»

★★★★★

P.S. Также в тред приглашаются свидетели движения «математика программисту не нужна»

Ну на уровне Древней Греции нужна. А потом в ней начала происходить всякая дичь, особенно в 20 веке.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 1)

А кто-то вообще разобрался
Соль то в чем?

«Не читайте журналистов до обеда», а универсальная «соль» в обмене избыточного объёма и организации памяти на скорость еёйного использования, например «метод цепочек» vs «открытая адресация» ©.

quickquest ★★★★★
()

в тред приглашаются свидетели движения «математика программисту не нужна»

в тред приглашаются свидетели движения «математика программисту нужна»

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

в тред приглашаются свидетели движения «математика программисту нужна»

Ты в курсе что туда входит статистика и комбинаторика?

Lordwind ★★★★★
()
Ответ на: комментарий от Lordwind

Щас тебе расскажут, что для перекладывания жсонов статистика и комбинаторика не нужны.

(А потом эти перекладывальщики хнычут, что из заменила автоматизация)

PPP328 ★★★★★
() автор топика
Ответ на: комментарий от Lordwind

во-первых программисту нужно встать с кровати — ему нужна наука о движении
во-вторых программисту нужно сесть на стул — ему нужна наука о приседаниях
в-третьих программисту нужно мыслить — нужна наука о мышлении
в-четвёртых ему нужно разбираться с психологией — нужна наука о психологии
в-пятых нужна наука о приготовлении пищи..
...
и т.д. и т.п.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 2)
Ответ на: комментарий от Bad_ptr

Хотел спетросянить, но что-то пошло не так?

Для здорового сна нужно понимать физиологию. Уставший человек напишет только херню.

Для того чтобы не скрючиться к 40 годам на сидячей работе, нужно понимать анатомию. Тромбозы входят в сердечно-сосудистые заболевания, которые стабильно в топе смертности.

Для того чтобы взаимодействовать с коллективом, нужна таки и психология

Видишь, я еще до математики не дошел даже. Не нравится? Иди в курьеры и денег больше и знать нихера не надо.

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)
Ответ на: комментарий от Bad_ptr

Я из движения «никому ничего не нужно» до тех пор пока все есть. Негру под пальмой ничего не нужно, проголодается - сорвет банан.

Lordwind ★★★★★
()
Ответ на: комментарий от PPP328

Молодой человек, сразу видно что вы Кнута не читали, так что сначала прочитайте Кнута.

Bad_ptr ★★★★★
()

«математика программисту не нужна»

Для научного обоснования свежая статейка: «к ускорению интернета новые теоретические алгоритмы не приведут» :)

quickquest ★★★★★
()

Ищешь в массиве место одновременно считая сложность затрачиваемую, ой стало сложно резко прыг в другое место где всё резко проще. Так порог сложности будет достигаться всегда чуть раньше, пока тебе есть куда прыгать. Установи для себя порог меньше и будешь прыгать чаще, и так далее. Сложность поиска места размазывается, но ступеньками. У тебя как бы всегда есть небольшая заначка куда можно прыгнуть и там тебе будет проще. Ну, до некого предела конечно

А ну ещё и момент что вот эти массивчики по которым ты прыгаешь, это не то куда ты вставляешь по их индексам указатели на данные, а это просто могут быть лукап таблички которые могут транслировать то куда будет вставка реальная, сами массивчики просто для поиска места, место занято или нет. Разделяешь вставку и поиск.

Частная оптимизация, где тут математика непонятно (такая чтобы её прям выделять в виду некого хитрого выражения одного через другое например). Ну насколько я понял.

Ща умные придут и скажут что я не прав и покажут как надо =)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)
Ответ на: комментарий от seiken

До Ньютона и Лейбница такие задачи не были распространены, а об истории в сослагательном наклонении не говорят. Но я не вижу какие могут возникнуть проблемы в оценке сложности алгоритмов, если только ты не работаешь с алгоритмами на уровне работ Кнута, конечно.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Ааа, не, вру, там пдфка с кучей формул =) Тада ладна. Я по видео всё понял. (Ну, типа понял)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от vaddd

Нет, так не получится, за взятку зачёт получить. Учи лекции с семинарами, и тогда приходи на пересдачу.

seiken ★★★★★
()

когда необходимо найти последнюю свободную ячейку

А зачем это может потребоваться (в реальной жизни)?

micronekodesu ★★★
()
Ответ на: комментарий от Wapieth

Программирование это просто прикладная деятельность (ближе к искусству), а не наука, где математика просто является инструментом. Тут имеется в виду непосредственное написание кода. А информатика, кибернетика, программная инженерия и так далее это всё абстракции над прикладной деятельсностью.

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

Хотя чаще нужна не прям математика, математика, а чуть геометрии и базовая арифметика, вот тогда математика просто инструмент, от которого при желании можно отказаться.

А иногда задачи такие что нельзя, и нужны не просто расчёты, а доказательства что нужны именно вот такие расчёты и считать вот так, потому что это лучше чем считать эдак, вот доказательсво, точка и по итогу выбор будет стоять не между это или это, а выбор между вот это хуже, а это лучше, с конкретикой и железобетонно (пока кто-то не опровергнет).

Ну и конечно ничто не мешает заниматься прикладной деятельностью такой как программирование в неразрывной связи с математикой, как двумя неразрывными для решения задачи инструментами, ибо каждый из них позволяет делать то что не может другой, просто это не всегда так, далеко не всегда нужно и даже возможно, но и из этого и не следует что не нужно совсем (дописываю уточнение чтобы поменьше горело)

На правах диванного аналитика конечно.
Для меня программирование и математика тёмный лес, но общая концепция в голове у меня такая. Если кто-то пошатнёт застоиустои сформировавшиеся в моей черепушке, буду рад :D

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

https://www.youtube.com/watch?v=ArQNyOU1hyE

Видео не смотрел, поскроллил туда-сюда, по диаграммам похоже уже должен быть готовый алгоритм. А код где? Лучшее доказательство же, код хешмапа, который быстрее всех по бенчах, а уже потом вот все эти диаграммы как оно сделано.

goingUp ★★★★★
()
Ответ на: комментарий от Lordwind

а еще без булевой алгебры на секуэль писать нельзя… как хорошо, что я программировать начал, не зная этого

rtxtxtrx ★★
()
Ответ на: комментарий от LINUX-ORG-RU

математика - это способ записать тож самое, что ты можешь выразить в коде, только с помощью математики ты не напишешь игру шахматы как и не напишешь на ней поэму. математика != логике, а математикам нечего делать в программировании, пусть свою бесполезную математику в школе преподают

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

Я и сказал что это инструменты, а так любая хрень сама в себе реальная или выдуманная но изучающая сама себя самой собой это наука, попутно может использовать всё что угодно иное существующее или выдуманное в мире, во всех иных случаях всё вышеописанное это просто инструмент для чего-то другого. Ой тут можно долго обсуждать. Но если суперкратко, что-либо тем или иным в зависимости от условий, в рамках этих условий оно тем и обзывается. Просто много ситхов которые хотят возвести всё в абсолют, в том числе математики, тот факт что следствия арифметики и заложенные в ней последствия родили математику как язык и в нём выразить можно всё (в теории) то заявляют что всё вокруг это следствие математики, можно показать фигу и сказать что сама математика это следствие физики, а то что она так на последнюю и как следствие на всё иное хорошо накладывается это не потому что физика и всё что из неё следует математично (включая моё желание почесать левую пятку), а то что математика не может быть нематематичной относительно того что её и родило, следствия не перечат причинам, ибо они ими рождены. Но это и не отменяет значимость, математика в рамках себя прикольная наука, а в рамках иного полезный инстурмент, только нужный не во всех случаях, но и не значит что не нужный совсем, ибо он не может быть ненужный ибо математика просто следствие физического мира.

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

Так, стоп. Вызывайте дурку виууу виууу виууу.

LINUX-ORG-RU ★★★★★
()

в тред приглашаются свидетели движения «математика программисту не нужна»

Вот это всё абстрактное математическое говно начиная с бредней тьюринга и прочего математического бреда вокруг программирования типа P=NP и т.п. - не нужно абсолютно точно.

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

Математика - всего лишь язык для описания реальности. Как и на любом языке на ней можно написать много всякой невменяемой чуши и бреда, а если ещё и давать за это деньги, то чушь и бред будут изливаться непрерывно, в ущерб реальному применению математики для решения практических задач. Математика ценна ровно настолько, насколько она используется для решения конкретной практической задачи. Абстрактный математический дрочь типа машины тьюринга или парадокса Банаха-Тарского не имеет ни ценности, ни смысла. И вот такая математика нахрен не нужна не только программистам, но и вообще никому кроме любителей математической дрочки. Вот только проблема в том, что дрочить они хотят непременно за чужой счёт, а не за свой собственный.

Stanson ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

ну математика такая же наука как теология. точнее у нас она наукой считается, а в западной академической среде нет (science and mathematics)

rtxtxtrx ★★
()

На диаграмме там логарифмическая лесенка из хеш таблиц и некие «overflow array». Если в первой таблице не повезло, пробуем во второй и т.д., а потом и в массивы. Енто надо чтоб специалист по хеш таблицам раскурил, что они там нашли.

ratvier ★★
()
Ответ на: комментарий от Bad_ptr

настоящему программисту с большой буквы П, прежде всего надо в восьмой класс без троек перейти. а не эти ваши науки о смышлении.

alysnix ★★★
()
Ответ на: комментарий от Stanson

Вот только проблема в том, что дрочить они хотят непременно за чужой счёт, а не за свой собственный.

Тебе понравится последний ролик Забины Хоссенфельдер на тытрубе.

С моей же точки зрения большинство Computer Science лабораторий в университетах тупо выполняют прикладную исследовательскую работу, которую по-хорошему должны делать компании–друзья профессоров. Но так как аспиранты очень дёшевы, то ситуация вряд ли переменится в ближайшее время, и академия будет засрана прикладным говном без малейшей попытки мыслить.

luke ★★★★★
()

А кто-то вообще разобрался

Нет. Зачем?

buddhist ★★★★★
()
Ответ на: комментарий от luke

Тебе понравится последний ролик Забины Хоссенфельдер на тытрубе.

Сабиночка знатно и очень по делу бомбит по поводу аналогичных проблем в теоретической физике, но вот по какой-то «совершенно непонятной» причине, как только речь заходит о climate change или всяких коронабесных шмурдяках, её критическое мышление и знание о том, как на самом деле обстоят дела в Academia куда-то мигом испаряется без следа. :)

Что до Computer Science, то там будет полная жопа пока не выкинут сраного Тьюринга с его бесполезной машиной и прочими сферическими конями в вакууме. Там прогнило всё настолько, что «научные» статьи сгенерённые утилиткой https://github.com/strib/scigen без всякой задней мысли публикуются в их журналах.

Математика - это всего лишь средство решения практических задач в физике, химии, биологии, computer science и т.д., а не какая-то там самостоятельная «наука», которая сейчас генерирует горы бесполезного шлака.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Так ты её последний видос заценил? А то у меня сгорело место ниже спины.

Что до Computer Science, то там будет полная жопа пока не выкинут сраного Тьюринга с его бесполезной машиной и прочими сферическими конями в вакууме

Покажи на кукле, где тебя трогала эта самая машина Тьюринга.

Математика - это всего лишь средство решения практических задач в физике, химии, биологии, computer science и т.д., а не какая-то там самостоятельная «наука», которая сейчас генерирует горы бесполезного шлака.

Ну знаешь, если математика не наука, то история и подавно.

luke ★★★★★
()
Ответ на: комментарий от luke

Так ты её последний видос заценил? А то у меня сгорело место ниже спины.

Нет ещё. А стоит? И так понятно - либо будет топить за борьбу с climate change и антиваксерами, либо бомбить по поводу теоретиков рожающих бред или по поводу очередного квантовокомпьютерного мошенничества. Непоследовательная она. :)

Покажи на кукле, где тебя трогала эта самая машина Тьюринга.

Эта самая машина Тьюринга - буквально «сферический конь в вакууме». Так что оно никак не может никого потрогать, так же, как и прочие галлюцинации теоретиков.

Ну знаешь, если математика не наука, то история и подавно.

Разумеется. Математика - это всего лишь язык для физики. А история это вообще не более чем лог херни которую натворило человечество за своё существование и не более. Никакой науки в этом быть в принципе не может. Вот антропология, палеонтология, геология - это науки изучающие прошлое. А история даже рядом не валялась, она ничего не изучает, никаких связей не ищет и даже не попыталась хоть какой-нибудь закончик обладающий предсказательной силой родить за всю историю своего существования.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 2)
Ответ на: комментарий от Stanson

А стоит?

Я думаю да.

Никакой науки в этом быть в принципе не может

По твоему выходит что наука должна заниматься чем-то материальным? А что, человеки нематериальны?

luke ★★★★★
()
Ответ на: комментарий от luke

Человек - это материальный носитель нематериальных идей.

vaddd ★☆
()
Ответ на: комментарий от luke

Я думаю да.

Ну посмотрел. Ничего интересного. «О боже, оказалось что если посмотреть в одну сторону, то там будет лес, а если в другую - то поле с речкой!!!». Ну если ты про то, что CMB разное если в разные стороны смотреть. С чего оно одинаковое должно быть-то? Мы не пуп вселенной, а вселенная не сферический конь в вакууме одинаковый поперёк себя.

По твоему выходит что наука должна заниматься чем-то материальным? А что, человеки нематериальны?

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

История ничего из этого не делает и не собирается. Она интересна в смысле развлекухи, но совершенно бесполезна в практическом смысле.

Азимов вроде пытался придумать «историю как науку» с законами позволяющими с хорошей точностью предсказывать будущие события и заранее просчитывать необходимые изменения, но получилось у него уныленько, если честно.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Наука должна заниматься исследованием окружающего мира и обнаружением законов по которым он работает, чтобы используя эти законы мы могли точно определять последствия наших будущих действий и через то сознательно создавать всякие полезные штуки, а бесполезные не создавать. История ничего из этого не делает и не собирается. Она интересна в смысле развлекухи, но совершенно бесполезна в практическом смысле.

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

vaddd ★☆
()
Ответ на: комментарий от vaddd

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

О как. Т.е. зимой я печку топлю, тепло одеваюсь и покупаю зимнюю резину, а летом хожу в футболке, включаю кондей и меняю резину обратно на летнюю не потому что ось вращения Земли наклонена к плоскости орбиты под углом отличным от 90 гразусов и я живу на широте 55 градусов, а из-за революций, рекламы и расовых конфликтов. Мда.

Stanson ★★★★★
()

случайно наткнулся на публикацию про уменьшение размеров указателей в памяти компьютера.

:-) спецификацию что-ли прочёл ? случайно...

в 86_64 адресуется 2^48. По месту может использоваться только половина того. Получается если адресуемое выровнено по 8 байт то в указателе полезны всего 44 бита из 64-х. Можно их плотно складывать и хранить вместе с тегами/атрибутами и nan-packed устраивать (как в js).

MKuznetsov ★★★★★
()
Ответ на: комментарий от Stanson

бреда вокруг программирования типа P=NP и т.п. - не нужно абсолютно точно

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

chupasaurus
()
Ответ на: комментарий от MKuznetsov

Получается если адресуемое выровнено по 8 байт то в указателе полезны всего 44 бита из 64-х

нет. получается, что только 3 бита младших лишние.

alysnix ★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)