Noder SS, ну на самом деле хранить состояние хеш-функции между updates - имеет смысл если
хешируемый текст достаточно длинный (несколько мегабайт) и нам надо пере-хешировать его просто изменяя последний
символ в конце текста.
Но хочется чтобы автор сам это озвучил. Потому что пока выглядит как проблема XY или нечто
из области фентези и гномов и прочих драконов.
Если в обучающей выборке процент неправильных слов будет больше чем правильных, тогда
сеть сойдется к неправильному базису и все Американ Шопы превратятся в Am3rikAn 5h0p.
Я не знаю что такое glove. Но есть функция Левенштейна которая кодирует редакционное
расстояние между словами. Например между Amer1c4n и American будет какое - то количество
редакций. Например замена двух символов == 2. И если создать справочник эталонных
слов и слов с ошибками то предварительной обработкой сырого датасета можно
свести ошибочные слова к правильным а дальше уже искать твоим алгоритмов фразы и сентенсы.
My1Name, если тебе надо посылать сообщения точка-точка - то используй BlockingQueue,
как я уже писал. Две сессии.
Если тебе надо рассылать уведомления от одной сессии ко многим - то тут надо подумать.
Почитай про архитектуру Kafka. Там этот вопрос реализован наиболее экономно и рационально.
My1Name, у тебя цель - академическая? Или практическая? Потому что с практической точки зрения БД удобнее.
Переживает перезагрузку с сохранением данных. А если просто изучаешь - как работает Java и чяты то бери
ConcurrentHashMap или BlockingQueue и пиши туда все что надо. Этих структур достаточно чтобы решить
задачи чята. И не надо искать специальную литературу. Ее скорее всего не будет потому что никто таким
обычно не занимается.
Непонятно что ты ишешь. Если ты уже реализовывал чяты с БД то тогда написать их без БД будет не сложно.
И между ConcurrentMap и БД есть бесконечное число уровней серого. Есть всякие БД на файлах. LevelDb, BerlkeleyDb,
Tarantool e.t.c. И есть просто сериализация структур в файлы.
Если ты не писал их вообще - то тогда вопрос не об этом и надо спрашивать другое.
Я согласен с автором. Нам преподносят много маркетинговой информации. Например в части взлома RSA. Но мне кажется что настоящая наука стоит не там а где-то в другом месте. И настоящей науке нет интереса ломать несимметричные шифры. Должны быть пласты задач которые машина фон-неймана решает не сильно эффективно а квантовый вычислитель - эффективнее за счет естественного параллелизма. И формальное описание... Как? Квантовый комп не имеет памяти и процессора в общем (классическом понимании этого слова). Тогда вопрос - что он имеет? Какой теоретический и математический аппарат есть чтоб описать его работу? Нужно ли знать вышку чтобы программировать КК? Или достаточно быть просто инженером разработки? Как симулировать работу КК на обычном железе? Поделитесь инфой кто знает.
Смотри. Дейкстра реализован уже миллион раз на всяких языках. Ты можешь взять любую реализацию
и использовать. Странно что ты не нашел AI-чяты которые все знают и не спросил решение там.
Структура данных у тебя - странная. Но тебе нужно построить над ней (и вообще над любой структурой)
следующий интерфейс (примерно).
interface Graph {
void set_label(int v, int distance);
int get_label(int v);
int distance(int v1,int v2);
vector<int> neighbors(int v);
.....
}
И уже алгоритм Дейкстры сможет работать используя эти методы. И надо заложить возможность
устанавливать дистанцию до нужной вершины в бесконечность. Это может быть константа типа MAX_INT.