Pull to refresh
3
0
Александр @FailErrorr

Java developer

Send message

База данных простых чисел до ста миллиардов на коленке

Reading time7 min
Views12K
image

Самый известный алгоритм для нахождения всех простых чисел, не больших заданного, – решето Эратосфена. Он замечательно работает для чисел до миллиардов, может быть, до десятков миллиардов, если аккуратно написан. Однако каждый, кто любит развлекаться с простыми числами, знает, что их всегда хочется иметь под рукой как можно больше. Как-то раз мне для решения одной задачи на хакерранке понадобилась in-memory база данных простых чисел до ста миллиардов. При максимальной оптимизации по памяти, если в решете Эратосфена представлять нечетные числа битовым массивом, его размер будет около 6 гигабайт, что в память моего ноутбука не влезало. Существует модификация алгоритма, гораздо менее требовательная по памяти (делящая исходный диапазон чисел на несколько кусков и обрабатывающая по одному куску за раз) – сегментированное решето Эратосфена, но она сложнее в реализации, и результат целиком в память все равно не влезет. Ниже предлагаю вашему вниманию алгоритм почти такой же простой, как и решето Эратосфена, но дающий двукратную оптимизацию по памяти (то есть, база данных простых чисел до ста миллиардов будет занимать около 3 гигабайт, что уже должно влезать в память стандартного ноутбука).
Читать дальше →
Total votes 24: ↑23 and ↓1+34
Comments28

Серьёзная ошибка в многопоточности процессоров Skylake и Kaby Lake

Reading time3 min
Views36K

В течение апреля и мая 2017 года компания Intel обновила документацию к процессорам Skylake и Kaby Lake, добавив одно небольшое примечание (errata KBL095, KBW095 для Kaby Lake, errata SKW144, SKL150, SKX150, SKZ7 для Skylake). Оно звучит следующим образом:

«В сложных микроархитектурных условиях краткие циклы менее чем из 64 инструкций с использованием регистров AH, BH, CH или DH, а также соответствующих более широких регистров (например, RAX, EAX или AX для AH) могут вызвать непредсказуемое поведение системы. Такое может произойти только если активны оба логических процессора на одном физическом процессоре».

Что означает это примечание — 25 июня 2017 года подробно объяснили в почтовом списке рассылки разработчиков Debian. Если вкратце, то процессоры Skylake и Kaby Lake с включенным HyperThreading могут вести себя неадекватно. Разработчики рекомендуют немедленно отключить HyperThreading в BIOS/UEFI, а потом обновить микрокод процессора от Intel или дождаться обновления BIOS/UEFI от своего вендора.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments28

Масса, энергия, импульс и закон сохранения

Reading time17 min
Views61K
image

Множество непонятных свойств мира связаны с природой массы и энергии (а также импульса). Все мы слышали эти слова и у многих из нас есть туманное представление об их значении. Конечно, значений у слов «масса» и «энергия» в английском и других языках довольно много. К сожалению, ни одно из них не совпадает с теми, что имеют в виду физики. Попробуйте отставить в сторону эти значения слов и поработать с точными физическими понятиями – иначе вы полностью запутаетесь.

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

Чтобы понять массу и энергию, необходимо добавить к ним импульс и обсудить различия и связи этих величин.
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments20

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity