@ru_arduino

Страница 6323 из 7737
Th0r
08.05.2018
19:25:50
а светодиодке хватает с трансформатором?
таже неонка в выключателях с индикатором может мигать светодиодной лампой

Dolphin
08.05.2018
19:25:55
Это огромный код на си плас плас от ардуино иде
все, не интересно, дальше с Кактусом

Юра
08.05.2018
19:26:06
Хотя алгоритм не сложный. Может, на асм переписать
Хотя, я не хочу на асм переписывать

kaktys
08.05.2018
19:26:11
32кб флеша, но там же код ещё
в 328p 32kb flash встроенной под програму и статические данные, часть (2кб) отъедает boot loader, если твой код уместится в 10кб, то у тебя остается 12-16kb под твои данные без доп микросхем

Google
Vk
08.05.2018
19:26:43
Юра
08.05.2018
19:29:39
а первые три байта - хеш ?

Ключи-то? Нет, не хеш, но спасибо, я забыл из хешировать. Сделаю хеширование до одного байта, тк значений у меня всего 1012, то можно их в 10и-битный хеш ужать, но тк я все равно выравнивать буду, то 2х байтный хеш позволит сократить место занимаемое ключами

Хотя, не.мне не хеш нужен а биективное отображение 1012и 3хбайтных значений в 2хбайтные

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

Как посоветуете биективно отображать 1012 уникальных 3хбайтовых значений в 1012 уникальных 2хбайтовых значений?

Чтобы я из 2х байтового значения мог обратно трехбайтное получить

Хеш-то это инъективное отображение

Dolphin
08.05.2018
19:31:50
какая длина строки максимальная?

Dolphin
08.05.2018
19:32:21
в 64 уложишься?

Юра
08.05.2018
19:32:46
какая длина строки максимальная?
Мне строки кешить не надо, но ща скажу

У меня ассоциативный массив на 1012 пар ключ-значение. Ключ 24хбитное число и значение это кодированная строка. Общий вес строк составляет 10623 байт. Общий вес ключей 3036 байт Каждый ключ это 3 байта. Стринги варьируются от 22 бит (почти 3 байта) до 191 бит (почти 24 байта)

Google
Юра
08.05.2018
19:33:28
Вот вся инфа

Dolphin
08.05.2018
19:35:02
предлагаю вместо хеша использовать 2х байтный номер (10бит) + длина строки (6 бит)

Юра
08.05.2018
19:35:38
предлагаю вместо хеша использовать 2х байтный номер (10бит) + длина строки (6 бит)
Так а чтобы этот номер обратно раскодировать мне надо хранить таблицу соответствия номера и ключа

Проще уж сразу трехбайтные ключи хранить

Dolphin
08.05.2018
19:36:06
ключ - начало строки

Dolphin
08.05.2018
19:36:24
Проще уж сразу трехбайтные ключи хранить
тебе все равно смещения хранить массивом

Антон
08.05.2018
19:36:25
Народ

А со статора можно снимать электричество в генераторе, если наоборот собрать?

Dolphin
08.05.2018
19:36:56
2 байта (номер + длина) - указатель на строку во флеш, в начале которой - ключ

Антон
08.05.2018
19:39:02
так обычно и делают
А, попутал. С ротора. Ну точнее в данном случае ротор - неподвижная ось, а статор - вращающийся. Такой же принцип применяется в движках в колёсах разной техники, не?

kaktys
08.05.2018
19:41:23
какая разница, электрические машины обратимы

Антон
08.05.2018
19:42:05
какая разница, электрические машины обратимы
Как называется правильно, что гуглить?

Юра
08.05.2018
19:42:43
kaktys
08.05.2018
19:42:55
Dolphin
08.05.2018
19:43:07
Так а зачем номер тогда? Можно адрес и длину
номер - индекс массива длин строк

массив - однобайтный

Google
Dolphin
08.05.2018
19:43:26
1024 значения

Юра
08.05.2018
19:43:40
А зачем индекс, когда можно сразу адрес нужного значения??

Антон
08.05.2018
19:43:48
а что тебе надо то
Нашёл проект вертикального генератора, судя по описанию. - применяется именно такая схема, стало интересно, как это работает

Dolphin
08.05.2018
19:44:01
а так - 1 байт

в два раза меньше

Юра
08.05.2018
19:44:19
Ну и да. Индекс это сдвиг от адреса начала так-то

Dolphin
08.05.2018
19:44:46
эффективный адрес строки во флеш: Смещение + сумма длин всех строк до искомой

по указанному адресу - ключ

длина текущей строки известна из массива

Антон
08.05.2018
19:45:46
а что тебе надо то
Нашёл, двигатель обращённого типа)

Dolphin
08.05.2018
19:46:13
... и номер из индекса

kaktys
08.05.2018
19:47:33
Нашёл, двигатель обращённого типа)
Brushless Outrunner у моделистов везде теперь

Антон
08.05.2018
19:48:20
Brushless Outrunner у моделистов везде теперь
Тоже поищу ща, спасибо! А как генератор можно заставить работать?

kaktys
08.05.2018
19:50:12
Крутить его?

Dolphin
08.05.2018
19:51:47
Такс
ну че замерз?

Юра
08.05.2018
19:52:14
ну че замерз?
Да я из магазина шел

Вот сообщение по чуть-чуть писал

Ща допишу

Google
Юра
08.05.2018
19:53:33
Значит что имеем: В начале еепрома хранить индекс и длину строки. Макс длина строки это 24 байт, т.е. Нужно 10 бит на индекс и 5 бит на длину, т.е. 15 бит в сумме, т.е 2байта без бита Сразу за этими 2024 байтами индексов хранить пары 3байта ключ и стринга выровненная до байта

Так?

Dolphin
08.05.2018
19:56:20
нет

1кб значений длин строк

находятся во флеш по смещению

сразу следом - начинается массив строк с ключами

вначале каждой строки - ключ

чтобы узнать адрес строки, нужно пробежать массив длин и вычислить сумму длин (смещение внутри массива строк) до нужной строки

по указанному адресу лежит ключ, следом за которым сама строка

Admin
ERROR: S client not available

Dolphin
08.05.2018
19:58:39
длина строки в массиве длин учитывает длину ключа

+3

иначе тебе нужен уже массив двухбайтных адресов

что больше ровно в два раза

но дает большую производительность

(не нужно вычислять адрес, он уже указан в массиве)

Google
Dolphin
08.05.2018
20:04:08
начало тоже не нужно

Юра
08.05.2018
20:04:40
чтобы узнать адрес строки, нужно пробежать массив длин и вычислить сумму длин (смещение внутри массива строк) до нужной строки
Ну да, а при последовательной итерации по всем строкам не надо будет вычислять суммы заново

Dolphin
08.05.2018
20:04:41
оно у тебя - адрес массива длин + 1024 (или сколько у тебя строк)

Юра
08.05.2018
20:04:59
(1012)

Dolphin
08.05.2018
20:05:14
ну вот - делаешь один большой массив

Юра
08.05.2018
20:05:25
Но вот проблема. Может я в будующем оптимизирую алгоритм и мне надо будет не последовательно проходить весь массив, а выборочно. Тогда считать суммы будет крайне неудобно математически

Dolphin
08.05.2018
20:05:26
вначале идет 1012 значений длин

да

я тебе оптимизировал задачу по размеру за счет вычислительной сложности )

тебе нужна скорость?

думаю нет

она будет приемлимой

Dolphin
08.05.2018
20:08:36
328 имеет алу

сложение за такт

Юра
08.05.2018
20:08:43
она будет приемлимой
Ну допустим, смогу ли я за секунду просмотреть все ключи заново пересчитывая суммы?

Dolphin
08.05.2018
20:08:53
ща

чтение 2 такта + загрузка 1 такт

3*1012+1011

тактов на весь массив

Юра
08.05.2018
20:11:16
Ну допустим, смогу ли я за секунду просмотреть все ключи заново пересчитывая суммы?
Вот столько сумм надо будет сделать sum(sum(range(1, i)) for i in range(1,1013))

Т.е. 172738786

Страница 6323 из 7737