Pull to refresh
113
0
Дмитрий Шевченко @Shedal

Пользователь

Send message
Как насчёт Netflix + Media Hint? Или это легальным не будет считаться?
Возьмём простое число P. На него без остатка делится N чисел из диапазона значений Int32.
Возьмём число P+1. На него без остатка будут делится N' чисел из того же диапазона, причём N' <= N.
Компенсировать плохую работу хэш-функции можно не тем фактом, что число простое, а тем фактом, что число большое. Чем больше число, тем меньше других чисел на него нацело делится. В том контексте, о котором вы говорите, абсолютно не имеет значения, простое ли значение capacity, или нет.
Наконец-то можно ресайзить окошко Options! Я джвенадцать лет ждал этой фичи! :)
capacity = 10
hashcode = 18
GCD = 2
bucketNumber = 18 % 10 = 8

Не сходится это с тем, что вы написали.
Вообще, если хэш равномерно распределён по всему диапазону своих возможных значений, то уже на что его не дели, всё равно остаток будет распределён равномерно в диапазоне значений [0; capacity). Общие делители на это абсолютно никак не влияют — влияет только распределение хэшей.
А, кажется, я начинаю понимать. Но думаю, что дело не в том, что какие-то биты «не работают». Ведь биты — всего лишь одно из бесонечности возможных представлений числа. Если представить то же самое число в троичной системе, то «не будут работать» биты при делении на 3. Если представить число в системе по основанию 59, то не будут работать биты при делении на 59.

Думаю, идея в оптимизации перехэширования. Ведь алгоритмы хеширования, хотя и могут быть основаны на разных принципах, наверное могут иногда вести себя схожим образом при, например, делении их хэщей на степень двойки, или тройки, или ещё какого-то числа. В общем, мне кажется, что простые числа нужны, чтобы свести к минимуму необходимость повторного перехеширования. Например, по какому-то конкретному хэшу накопилось 100 значений, а после смены хэш-алгоритма снова наблюдается та же ситуация из-за того, что в обоих алгоритмах «не работают биты» при взятии остатка деления на какое-то число. Так вот, чем больше размер массива buckets, тем меньше вероятность, что мы с этим стокнёмся — ведь простые числа растут, и всё меньше остаётся чисел, которые на них без остатка делятся.
При добавлении элемента вычисляется хэшкод его ключа и затем — индекс корзины в которую он будет добавлен по модулю от величины коллекции (именно для этого размер выбирается простым числом, чтобы обеспечить более равномерное распределение и уменьшить число возможных коллизий):
Я, наверное, что-то недопонял. Можете пояснить, как деление по модулю простого числа обеспечивает «более равномерное» распределение, чем деление по модулю обычного числа (например, на единицу большего, чем простое)?
Кстати, hashcode & 0x7fffffff — интересный приём. 0x7fffffff — это значение int.MaxValue.
Делается эта операция для того, чтобы транслировать отрицательную часть диапазона Int32 в положительную. Логически это то же самое, что:

hashcode >= 0 ? hashcode : int.MaxValue + hashcode + 1
Neuroscientist это не невролог, а нейробиолог

I was told by a professor of mine that you didn’t have much control over your intelligence
мой преподаватель сказал мне, что я практически не контролирую свой интеллект

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

The take-home points from this research?
Какие пункты этого исследования можно выполнять дома?

«Take-home points» — это выражение, означающее: «Что из этого можно для себя извлечь».

Извините, сообщение случайно отправилось раньше времени. Если будет время, я позже продложу.
Да там много ошибок перевода. Но главное — то, что этот перевод есть :) Статья в любом случае полезная, вдохновляющая получилась.
Мне кажется, вы правы. Кстати, может быть, подскажете, как научить ребёнка концентрироваться?
Речь шла о том, что компании платят за найденные уязвимости.
Ну, хакеру, который запостил что-то на стену Цукерберга через уязвимость, так и не заплатили, хотя в предыдущие полгода он несколько раз писал отчёт об этой уязвимости в их службу поддержки.
50 000 DKK минус 39% = 30 500 DKK ~= $5450 после налогов на руки.
За $1800 в месяц можно снять отличную 3- или даже 4-комнатную квартиру, после этого остаётся 3650 долларов. Жить можно.
К вопросу о «прокормить и одеть семью» — в европейских семьях принято работать обоим супругам. Брать ипотеку, когда работает только один, в любом случае очень рискованно.
Если зарплата 50000, то налог — около 39%. Но вообще, многое зависит от коммуны, в которой живёшь и от многих других факторов.
32000 крон — минимальная зарплата для айтишника, при которой ему дадут визу. У разработчиков-синиоров зарплата (до налогов) — 40-50 т.кр., и выше.
«best venue for the gigs» — вот что это?!
«Лучшее место для проведения концертов»? :)

А вообще, для тех, кто выше спрашивал про экзамены, для получения визы ничего такого не требуется. Главное, чтобы твой работодатель был glæde :)
Для IT'шников нужен диплом бакалавра. А вот, например, докторам нужен Master's degree.
www.nyidanmark.dk/en-us/coming_to_dk/work/positivelist/positive_list_overview.htm
Словари об этом ничего не знают. В моей англоязычной среде все произносят глагол с ударением на первый слог.
Какие будут ваши доказательства? :-)
Вы неправильно поняли. При ударении на второй слог, слово обретает другой смысл — «участвовать в процессии». И там не ударение британское, а само слово, которое в этом значении в американском английском не употребляется.

В том значении, в котором слово употреблено в коде («обрабатывать»), есть только один вариант произношения — с ударением на первый слог. В том, что вы об этом не подозревали, нет ничего удивительного — это распространенная ошибка у русскоговорящих.
Но есть небольшая проблема. Ударение в этом слове падает на первый слог, а не на второй.

Information

Rating
Does not participate
Location
München, Bayern, Германия
Date of birth
Registered
Activity