Хранение огромного числа книг.Допустим у нас есть 130 миллионов книг. Можно ли их уместить на обычный компьютер, если хранить в таком виде:Каждое слово это число. Значение чисел хранятся в отдельном словаре.Если нет, то каким образом можно?
Можно. Но лучше стандартным хаффманом пожать.
>>947614А какой там принцип сжатия?
>>947610 (OP)нет, нельзя, ведь книга может быть любого размера, а слово - любой длинны.Если в книге будет бесконечное число слов, то потребуется бесконечное число чисел что бы их зафиксирвоать.Тут понадобиться язык, поддерживаюищй эффективную работу с бесконечными списками, например ХАСКЕЛ!
>>947651Бесконечного числа слов быть не может. Как правило слова повторяются и имеют ограниченное количество.
>>947651а есть версия для малолетних пиздюков как оп, с картинками и аниму?
>>947648Друг, ну гугл же: https://habrahabr.ru/post/144200/ https://ru.wikipedia.org/wiki/Код_Хаффмана
>>947674Благодарю.
>>947610 (OP)можно сделать айди для слов или даже словосочетаний. сначала айди. Но при этом пусть сначала в бите с 1 по 7 будет идти количество байтов, которое используется для данного айдишника, а если байт больше 128 (да, нехватает 2^128 слов) то пусть бит 0 будет установлен в 1 и тогда подобный алгоритм со следующим байтом. А слово будет кодироваться символами, но чтобы в конце был нулевой символ.Кстати, а картинки там будут?
>>947839Картинки слишком много места занимают. Хорошо видно на архивах Либрусека с fb2 и с pdf форматами.
>>947610 (OP)>130 миллионов книгПримерно 40ТБ. В общем берёшь новые диски по 8ТБ, 5 штук, плюс один системный с SSD, итого справится даже моя нищебродская материнка с 6 портами SATA. ОС нужна с поддержкой больших дисков, то есть XP x64 и выше.
Привет, ты только что придумал .tar.gz.
>>949772> .tar.gz.Зачем кто-то пользуется этим говном, когда есть божественный 7zip?
>>949797>Зачем кто-то пользуется этим говномtar.gz хорош тем, что архив и через 100 лет можно будет чуть ли не вручную прочитать - и tar и gz можно на бумажке распарсить.
>>949819> gz можно на бумажке распарсить.Значит и 7z распарсишь.
>>949734Gentoo, Gentoo же.
>>9497977zip На С++ написан, а плюсы то не вечны. С в свою очередь переживет все языки.з
>>949843Так вот оно что, у пердольных даунов кресты недостаточно швабодные и жму-пинус-вейные. Лол.
>>949841Слишком много места занимает и оптимизации мало.
>>949945В разы меньше чем винда.Оптимизация в разы лучше чем в винде.Ну вообще Arch Linux есть если место это важно.
>>949865С это стандарт де факто, ++ для хипстоты не могущих в код.
>130 миллионов книгэто просто сумашедшее число, столько нет и не будетк примеру, я примерно прикинул, что за всю жизнь прочитал примерно полторы тысячи книги это при том что изначально у родителей была комната отведенная под библиотеку, плюс ходил в общественные библиотеки, плюс много с компа читал в нулевые, плюс купил электронную читалку когда ими мало еще в россии пользовались, а у меня уже былате я очень активный читатель
>>947614Правильно, хаффман. Хаффман в общем-то везде применяется, во всех архиваторах. Вопрос только в выборе уникальных термов, к примеру как в ОП-посте:>Каждое слово это числоНо не факт что именно это будет оптимально.
>>949955и ты все помнишь что прочитал?
>>949797Тоже говно. Уже есть божественные bzip2, xz. И по-моему даже что ещё более хардкорное, но с очень длительной архивацией.
>>949955>за всю жизнь прочитал примерно полторы тысячи книгЭто грустно. Страшно представить, что писатели конкурируют именно за кусок твоей жизни.
Изобретатели архиватора бабушкина просто понабежали лал.Оп используй архиватор бабушкина и все твои 130 млн книг влезут на 1 флешку размером в 1 гиг
>>949971многие имена, даты конечно забываешь, но это нормально, это защитная реакция механизма памяти от перегрузкино концепции, идеи, сюжет помнишьпотом заинтересовавшие или сложные книги потом перечитываешь, чтобы дополнительно разобратся или вспомнить
>>949980В свое время прочитал полностью ссанину никитина про ричарда ссаные руки. все 45+ книг.Сейчас не помню практически нихуя из того высера.
>>949989ничего не имею против с такого развлекательного чтенияпросто есть более годные альтернативы этой сериите тоже примерно тот же формат, но качественнейнапример, книжки того же виталия зыковаили у стивенсона криптономикон + барочный цикл просто бесконечный для тех кто медленно читает
>>949951>В разы меньше чем винда.Винда разная бывает. Инсталятор ХР можно урезать до 75МБ.>Оптимизация в разы лучше чем в виндеBug 12309>>949977>размером в 1 гигИ то потому что меньше флешек не найти, так бы влезло в 4кб.
>>949973Схуяли он лучше, дебик, это даже не архив а такой же кусок говна как и гзип, которым можно сжать только один файл, а LZMA2 в разы быстрее и эффективнее.
>>949973Xz это такой же пердольный кал, только со спизженным из 7zip сжатием LZMA, работает при этом в разы медленнее.
>>950071>которым можно сжать только один файлUNIX Way.
>>950076Вся суть, нормальный архиватор с файлами, блоками, шифрованием это нишвабодно, деды говно жрали и нам велели.
>>947610 (OP)Я придумал. Можно вообще ничего не хранить, а генерировать все на лету. Ну как вам?https://libraryofbabel.info
>>950118я так не думаю.
>>950071>сжать только один файл>дебикЛол, спешите видеть. Школьник не знает что такое потоковый архиватор. И считает что изобретение ещё одной кастрированной файловой системы внутри архива это неебаться как важно и нужно.
>>947610 (OP)В общем весь тред будет засран упоротыми фанатами из /s/, я тебе отпишу по теме и скрою.Хаффман это по сути такой способ записать последовательность чисел таким образом, чтобы читая последовательно биты можно было выделить из потока отдельные числа (которые могут быть разной битовой длины). Собственно становится ясно, что наиболее часто употребляемые числа нужно выражать как можно более короткими битовыми кодами. Но в то же время чем короче сам словарь чисел, тем в целом короче и битовые коды. Получается такой компромисс - либо проебаться на длинных кодах, либо кодировать очень много коротких чисел.Скорее всего, если у тебя времени всего день к примеру, тебе имеет смысл перепробовать кучу разных архиваторов и найти наиболее подходящий. Этот же метод, скорее всего, даже победит около полугода твоих личных исследований и экспериментов с выделением наиболее подходящих словарей и построением алгоритмов. Но, так как задача у тебя не написать универсальный архиватор, а сделать архиватор исключительно для книжного текста, не исключено что при должном упорстве (если конечно никто ещё не выполнял подобных исследований) ты переплюнешь лучшие универсальные архиваторы по степени сжатия. Всё из-за того что ты будешь исследовать закономерности в текстах на естественном языке и сможешь найти там дополнительные регулярности, к примеру: устойчивые сочетания слов, места где запятая ставится по правилам (а значит можно её вырезать из потока, а при распаковке снова проставлять по правилам), большие буквы в начале предложения можно делать мелкими, итд. Задача интересная.Но я всё-таки не знаю насчёт 130 миллионов книг. Давай прикинем. Каждая более-менее большая книга это под мегабайт текста. Допустим ты сожмёшь их до 200кбайт. Это 24,2 терабайта текста. Тебе придётся купить массив самых вместительных хардов, порядка 10-15 штук 2-3 терабайтных. В остальном это может быть действительно самый обычный компьютер, разве что мать должна быть навороченной, с кучей портов под харды, либо с выделенной PCIe платой.В общем да, Александрийскую библиотеку можно создать прямо у себя в комнате.
>>950217Действительно, файлы не нужны, лучше ждать три часа пока распакуется весь 100 ГБ архив чтобы достать один файл.
Вы малолетние уебаны и абсолютно не понимаете смысла tar. Tar появился во времена когда нгмд и нжмд были еще не распостранены. И хранение проводилось на ленточных накопителях. У ленточных накопителей нет произвольного доступа к медиа. А лишь последовательное. Потому архив и создавался так. Один большой файл в котором сохраняются файлы со структурой директорий. По сути tar просто обьединяет много файлов в один. Потоковое сжатие gzip позволило более эффективно использовать место. В tar и поныне есть команды управления драйвами типа перемотать ленту на начало и тп. Но малолетним даунам лишь бы попиздеть. Да сейчас когда носители с произвольным доступом повсюду, концепции tar устарели. Но в свое время они были адекватны задачам.
>>947610 (OP)ОП придумал метод сжатия Бабушкина. Дай угадаю. Тебе 14 лет.
>>950343Долбоёб, использующий говнософт под вендой. Нормальное ПО может извлечь один файл из tar.gz.
>>950600А теперь ты читаешь http://www.gnu.org/software/tar/manual/html_node/Standard.htmlИ понимаешь почему я ссу тебе в еблет как тупорылому школотронуЕсли же ты конченый дебил то поясню. Информация о файле хранится в заголовке перед файлом. Общей таблицы где описаны файлы архива как например у 7зипа нет. То есть для извлечения одного файла который находится в конце придется все равно просмотреть весь архив последовательно. От ос и софта это не зависит950346-кун
>>947653Нет, зависит от алфавита