Jesus, каких символов? У тебя есть байты. Представленые благодаря Python
в виде такой вот странной формы строкового литерала. x = b'\x01\x02\x03'
Верно?
У тебя в вопросе звучит две под-вопроса. Первое - это физическое объединение модемной сети. Был такой производитель оборудования Moxa. Кажется он делал много разных коммутаторов на базе COM/RS232. Насчет USB - не знаю. Поищи. Но цель там была - коммутация.
У тебя-же в топике звучит еще одна цель - это суммирование трафика. Это другая задача - более высокого уровня. И ее надо рассмотреть отдельно.
Чел правильно тебе говорит. Если у тебя - домашний вариант роутера - то и таких задач у тебя не должно возникать. Если у тебя - предприятие - то покупай себе оборудование от Cisco - там будут и всякие сложные правива прокси и межсетевого экрана.
luaPower, я думаю что твоя гипотеза требует какого-то доказательства. У меня нет сомнений в том что выбор слова из базы по порядковому номеру взятому из ГПСЧ будет соовтествовать линейному распределению.
Но у меня есть сомнения в том что все прочие методы дают нужное распределение. И почему мы решили что следующее число за длинным - будет правильным выбором. Может надо взять следующие 2 числа? Или может мы должны анализировать длину найденного числа и вести учёт уже найденных? Или может мы должны делать корректировочный выстрел?
SemenPPP, фантазия у меня богатая. Но я хотел еще увидеть предметную область. И прочие признаки. Которые могут сделать задачу узко-специализированной. Пока-же у тебя идет такая себе сверх-задача. И ты заставляешь нас, участников qna искать сверх-решения.
Кирилл Гусарев, я-бы посчитал накладные расходы на индексы. При 12 Гб файле нам удобно использовать целые числа формата long (64bit) для указания начала слова.
Далее - я бы посчитал среднюю длину слова. Допустим это 11 символов. Пускай слова разделяются переводом строки 0x0D тогда будет 12 байтов на слово. И 8 байтов на элемент индекса.
Считаем число слов 12 Gb == 12884901888 bytes
Или в 1 073 741 824 слов (1 миллиард).
Объем индексного файла будет - 8589934592 bytes ~ примерно 8 Гб.
Примерно подходит под требования автора.
На индексе можно сэкономить если взять скажем не long 64bit а int32 bit
Тогда надо базу слов разбить хотя-бына 3-4 части (одно целое число может адресовать
смещение до 4 млрд).
Или можно поступать с памятью как делает Java c heap. Выровнять слова по границе
параграфа (16 байт) и тогда можно лишние 4 бита с индексного элемента перенестсти
в старшие разряды. И тогда может быть хватит 32х бит. Тут надо посчитать вобщем
потери от такого округления. Вместо 12 Гб файла - может быть в полтора раз больше.