170 похожих чатов

Добрый день, как бы вы хранили в файле результат работы

алгоритма LZ78?

Если хранить как строку, то "привет мир" выглядит как "0п0р0и0в0е0т0 0м3р0", однако закодированный текст содержащий цифры будет сложно идентифицировать в дальнейшем и могут начаться путаницы.

Есть вариант хранить в бинарном виде, используя просто [(0, 'a'), (1, 'b'), (0, 'c'), (2, 'd')] - список кортежей, однако я переживаю как это всё скажется на производительности 😩😩:(

10 ответов

28 просмотров

ну можешь пиклить да, можешь взять msgpack какой-нибудь

Leo- Автор вопроса
ungenuineer Hor
ну можешь пиклить да, можешь взять msgpack какой-н...

И что это мне даст? То есть вариант 0п0р0и0в0е0т0 0м3р0 нельзя нормально декодировать (если будут встречаться например символы с цифрами)?

Leo- Автор вопроса
Leo
И что это мне даст? То есть вариант 0п0р0и0в0е0т0 ...

Вот пример, если кто не понял про цифры: 020р0и0в0е0т0 0м3р Декод: 2ривет мир

Не понял, пришли ли в итоге к ответу, но выглядит, будто тебе нужен struct.

Leo- Автор вопроса
evle
Не понял, пришли ли в итоге к ответу, но выглядит,...

Я понял исходя из ответов, что примерно все в этом чате < мем где школьник переступает ступеньки с алгоритмы, структуры данных и тд >

Leo
Я понял исходя из ответов, что примерно все в этом...

Ну, твоя формулировка вопроса требует некоторой телепатии.

Leo
Я понял исходя из ответов, что примерно все в этом...

чат beginners, чего еще ты ожидал? натирки мазями и массажа шиацу?

> Добрый день, как бы вы хранили в файле результат работы алгоритма LZ78? encoded_data = [...] with open("file", "wb") as f: for n, ch in encoded_data: f.write(n.to_bytes(4)) f.write(ch.encode("utf-32")) decoded_data = [] with open("file", "rb") as f: while n_bytes := f.read(4) and ch_bytes := f.read(4): decoded_data.append((int.from_bytes(n_bytes), ch_bytes.decode("utf-32")))

Leo- Автор вопроса

Одно из решений, однако оно очень странное: ты сохраняешь int32 для индекса - мб ок, дальше вижу utf-32? Последовательность символов под этим индексом может быть произвольной, в этом и заключается смысл сжатия. К сожалению, вариант отпадает. Я послушал Вас всех, один из вариантов пока хранить построчно, однако тоже есть минусы этого метода

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта