These are chat archives for groupoid/exe

27th
Apr 2017
Alexander Nemish
@nau
Apr 27 2017 13:24
господа математики/программисты, подскажите байтоебское решение одной задачки, имеющей вполне практическое применение.
В моем не типизированном языке можно объявить стуктуру, предположим это struct User(id, name, age).
Далее, имея экземпляр этой структуры u = User(0, “God”, 2017) и выражение u.name мне в рантайме нужно понять, что поле name - второе, его индекс в структуре – 1. Хочу более быстрое решение, чем хешмапа.
Assumptions: предположим, что у нас есть хеши имен филдов структуры, и предположим что они уникальны. Тогда задача сводится к тому, чтобы замапить хеши имен на индексы.
Скажем, если мы возьмем хеши имен филдов за (321, 11, 42) то мне нужна функция f(hash) -> index, такая что f(321) = 0, f(11) = 1, f(42) = 2. Разумеется, вычисляться она должна O(1), желательно за минимум тактов.
все поля известны на этапе компиляции и не меняются в рантайме
имя филда, которого нет в структуре не должно мапиться на валидный индекс
Namdak Tonpa
@5HT
Apr 27 2017 16:44
(0, “God”, 2017) — мне нравятся примеры!