oleg_log
Такс, хотел в пятницу, но #задачка будет сегодня. Сколько различных флоат32 помещается в промежутке [0; 1] ? (для подсказки: а сколько в [-1; 1] ? Ответ можно дать наугад с большой шансом угадать :) Для тех кому скучно и хочется поиграться с битиками: посчитайте…
Так получилось, что ответили только 3/3 человека. Штош.
Начнем с подсказки, ответ....половина. Да, в [-1; 1] содержится половина всех флоат32.
Если кратко, то для х и 1/х у нас одинаковое кол-во битов. Поэтому внутри [-1; 1] должно быть столько, сколько в (-inf; -1) U (1; +inf), приблизительно, ведь там еще +- 0 и NaN, а я не помню что и как с ними %)
Соотв в [0; 1] попадет четверть всех флоатов.
Если совсем точно, то 126 * 2**23 + 1 == 1,056,964,609. Позитивные экспоненты * мантисса + само число 1 = миллиард с кусочком, или 2**30 как приближение, то есть 1/4 от 2**32.
А код для [x;y] я сам не написал, поэтому можете не спрашивать, задание было для хардкорщиков, но видно таких не нашлось.
Так устроена природа, как говорил мощный физик из ДонНУ.
Ссылочки:
любимец многих Daniel Lemire (советую его блог, особого хардкора жаль нет, но порой интересно)
https://lemire.me/blog/2017/02/28/how-many-floating-point-numbers-are-in-the-interval-01/
"Дизассемблер флоатов" https://float.exposed/0x42304000
И хорошее описание внутренностей флоатов http://fabiensanglard.net/floating_point_visually_explained/
Начнем с подсказки, ответ....половина. Да, в [-1; 1] содержится половина всех флоат32.
Если кратко, то для х и 1/х у нас одинаковое кол-во битов. Поэтому внутри [-1; 1] должно быть столько, сколько в (-inf; -1) U (1; +inf), приблизительно, ведь там еще +- 0 и NaN, а я не помню что и как с ними %)
Соотв в [0; 1] попадет четверть всех флоатов.
Если совсем точно, то 126 * 2**23 + 1 == 1,056,964,609. Позитивные экспоненты * мантисса + само число 1 = миллиард с кусочком, или 2**30 как приближение, то есть 1/4 от 2**32.
А код для [x;y] я сам не написал, поэтому можете не спрашивать, задание было для хардкорщиков, но видно таких не нашлось.
Так устроена природа, как говорил мощный физик из ДонНУ.
Ссылочки:
любимец многих Daniel Lemire (советую его блог, особого хардкора жаль нет, но порой интересно)
https://lemire.me/blog/2017/02/28/how-many-floating-point-numbers-are-in-the-interval-01/
"Дизассемблер флоатов" https://float.exposed/0x42304000
И хорошее описание внутренностей флоатов http://fabiensanglard.net/floating_point_visually_explained/
Вот очень-очень крутое замечание https://xn--r1a.website/numstation/1550
При смене операций над данными можно решить разные задачи. Мне это еще напомнило BFS/DFS (те что обходу графов в ширину и глубину).
При смене очереди на стек, в простейшей реализации, 1й становится 2м и можно наоборот.
Весь мир состоит из паттернов.
При смене операций над данными можно решить разные задачи. Мне это еще напомнило BFS/DFS (те что обходу графов в ширину и глубину).
При смене очереди на стек, в простейшей реализации, 1й становится 2м и можно наоборот.
Весь мир состоит из паттернов.
Telegram
Numbers Station Omega
t.me/oleg_log/1310
Напомнило целый обобщенный класс задач (и алгоритмов их решения) на взвешенных графах: (+, х)-задачи ("плюс"-"умножить" задачи)
Ядро алгоритма - одна и та же формула для вычисления W[i][j] (W - 2д массив NxN, N-колво вершин) вида
W[i][j]…
Напомнило целый обобщенный класс задач (и алгоритмов их решения) на взвешенных графах: (+, х)-задачи ("плюс"-"умножить" задачи)
Ядро алгоритма - одна и та же формула для вычисления W[i][j] (W - 2д массив NxN, N-колво вершин) вида
W[i][j]…
В го 1.13 очевидно завезут новые таймеры, вот с таким красивым комитом:
И таким (частичным) описанием:
Насколько я знаю от людей из гугла, это вещи давно у них ходят в проде и все ок, вероятность фатальных дыр минимальна.
Справа там куча патчей с изменениями:
https://go-review.googlesource.com/c/go/+/171883/
const oldTimers = falseИ таким (частичным) описанием:
runtime: switch to using new timer code
No big changes in the runtime package benchmarks.
Changes in the time package benchmarks:
name old time/op new time/op delta
AfterFunc-12 1.57ms ± 1% 0.07ms ± 1% -95.42%
After-12 1.63ms ± 3% 0.11ms ± 1% -93.54%
Reset-12 6.78µs ± 1% 4.24µs ± 7% -37.45%
Sleep-12 183µs ± 1% 125µs ± 1% -31.67%
Ticker-12 5.40ms ± 2% 0.03ms ± 1% -99.43%
Насколько я знаю от людей из гугла, это вещи давно у них ходят в проде и все ок, вероятность фатальных дыр минимальна.
Справа там куча патчей с изменениями:
https://go-review.googlesource.com/c/go/+/171883/
В телегу завезли анимированные стикеры, если вы в поисках, то есть канал с ними.
https://xn--r1a.website/AnimatedStickers
и еще https://xn--r1a.website/topanimated
(кстати какие-то клиенты телегу могут падать с ошибкой, обновитесь до последней)
https://xn--r1a.website/AnimatedStickers
и еще https://xn--r1a.website/topanimated
(кстати какие-то клиенты телегу могут падать с ошибкой, обновитесь до последней)
Как много вы овертаймите?
(возьмем 8ч как нормальный рабочий день)
(возьмем 8ч как нормальный рабочий день)
Anonymous Poll
32%
Никогда или ~раз в месяц
21%
Раз в пару недель
21%
Еженедельно
9%
Ежедневно
7%
Иногда на выходных
7%
Каждый день :(
4%
Другое
oleg_log
Как много вы овертаймите?
(возьмем 8ч как нормальный рабочий день)
(возьмем 8ч как нормальный рабочий день)
ежедневно == только рабочие дни, аргх
Не знаю почему, но (самодельные) шутки про Collatz conjecture меня особенно смешат.
Да, это та самая задачка про 3n+1 и вопросу, сведется ли число к 1.
До 10**18 все ок, а дальше хз.
https://en.wikipedia.org/wiki/Collatz_conjecture
Да, это та самая задачка про 3n+1 и вопросу, сведется ли число к 1.
До 10**18 все ок, а дальше хз.
https://en.wikipedia.org/wiki/Collatz_conjecture
oleg_log
Либо это холодный вечер пятницы, либо меня потянуло на подкасты, подкиньте что-то, что любите слушать. И как вы вообще вкатились в них? Меня как-то отталкивает то, что я теряю контекст, потому-что хочу заниматься своими делами _и_ при этом слушать. Кстати…
А вот и сборник подкастов, возможно кто-то найдет для себя что-то новое.
https://telegra.ph/Sbornik-podkastov-ot-podpischikov-07-07
https://telegra.ph/Sbornik-podkastov-ot-podpischikov-07-07
Telegraph
Сборник подкастов от подписчиков
Сразу скажу спасибо всем откликнувшимся, далее список ваших рекомендаций. (заметка: я слушал только парочку из них. поэтому описание это либо как я это воспринял, либо как мне кратко описали, решать вам) IT: Конечно же всеми известные Radio-T и Podlodka (https://radio…
Forwarded from Sysadmin Tools 🇺🇦
Многие в курсе что такое Zabbix, и тоже многие говорят, что он днище. Согласен, в некоторых моментах да, в некоторых нет. Для провайдеров очень полезная штука. Так вот - есть форк https://glaber.io , при этом с допилом/перепилом/кластеризацией из коробки.
https://gitlab.com/mikler/glaber
Уже собраны пакеты, можно тестировать.
https://gitlab.com/mikler/glaber/tree/master/releases
Issues - приветствуються.
Чат в Telegram: https://xn--r1a.website/glaber_group
https://gitlab.com/mikler/glaber
Уже собраны пакеты, можно тестировать.
https://gitlab.com/mikler/glaber/tree/master/releases
Issues - приветствуються.
Чат в Telegram: https://xn--r1a.website/glaber_group
Понадобилось сделат "дифф" 2х списков питона, из разных кластеров Zookeeper, что-то типа:
Сурс: https://stackoverflow.com/a/11426702/433041
xs = [1, 2, 5, 6]И нагуглил красивое (как по мне) решение:
ys = [2, 3, 4, 5]
print list(pairs(xs, ys))
# [(1, None), (2, 2), (None, 3), (None, 4), (5, 5), (6, None)]
from collections import deque3й параметр
def pairs(xs, ys, cmp):
xs = deque(sorted(xs))
ys = deque(sorted(ys))
while xs and ys:
c = cmp(xs[0], ys[0])
if c == 0:
yield xs.popleft(), ys.popleft()
elif c < 0:
yield xs.popleft(), None
else: # c > 0:
yield None, ys.popleft()
for x in xs: yield x, None
for y in ys: yield None, y
cmp конечно можно выкинуть и подправить if-elif на обычное сравнение.Сурс: https://stackoverflow.com/a/11426702/433041
Stack Overflow
Python: Fast and minimalistic way to zip and pair matching elements in two lists
I have:
>>> As = [1, 2, 5, 6]
>>> Bs = [2, 3, 4, 5]
I want something like zip_fn below:
>>> Rs = zip_fn(As, Bs, cmp)
>>> Rs
[(1, None), (2, 2), (None, 3), (No...
>>> As = [1, 2, 5, 6]
>>> Bs = [2, 3, 4, 5]
I want something like zip_fn below:
>>> Rs = zip_fn(As, Bs, cmp)
>>> Rs
[(1, None), (2, 2), (None, 3), (No...