Greaver #81 13 февраля 2013 на счет того что нужно хранить порядок я не уверен, и я не уверен что вообще это возможно реализоватьно блять сжать на столько без сохранения порядка это ахуенно я считаю никто еще не предложил способ даже близко похожий на сжатие с сохранением индексацииЧувак, почитай про архиваторы. http://log.toeoda.com/Compression/Archivers/archivers.htmПервые три метода такие очевидные, что я до них сам додумался минут за 20, при том, что такой обработкой данных никогда не занимался, остальные хитрее, я не въехал до конца. Самое простое, что можно ебануть: Анализируешь свой массив и ищешь самую популярную маску. Чтобы не заебываться, допустим, по старшим 6-8 битам, ищешь самую частую комбинацию. Точнее максимальным должно быть кол-во бит, умноженное на кол-во повторов. Допустим, оказалось, что у тебя у 400к чисел старшие биты "001010" 6х400=2.4мегабита инфы. Ебашишь второй массив с кодами, 1 и 0 тупо.Смотришь - первое число не подходит, ебашим во второй массив 0, а в конечный полностью 32 бита слова, смотрим второе - подходит, ебашим во второй массив 1, а в конечный ебашим 26 бит слова, отрезав старшие биты, смотрим третье слово, не подхоодит: во второй - ноль, ко второму слову конечного массива в конец дописываем 6 старших бит третьего слова, а оставшиеся 26 в следующее. и т.д. и таким образом прессуем слова, вырезая повторяющийся кусок, кодируя его во второй массив 1 либо 0. Он займет 2мегабита инфы. Потом этот второй массив ебашишь в конец главного, а в начале делаешь пару меток для проги, пишешь туда слово, которое заменял и гг. при восстановлении надо будет идти с самого начала: будешь смотришь на единичку, берешь 001010, плюсуешь к нему 26 бит, видишь 0 - копируешь все 32 бита. и т.д. получишь 0.4мегаБИТА сжатия за один проход при хуевом раскладе. маска может быть и не в начале 6 подряд, а например такая: ххх0 х101 ххх0 1010 1ххх хххх 0ххх ххх112 бит. на кодирование этой хуйни уйдет 2мегабита, значит если такая маска встречается в массиве чаще 167тыс. раз, то ты начинаешь получать профит. граничное условие:2 бита маски - нахуй не надо.3 бита - более 667тыс4 бита - более 5005 более 4006 - 333тыс7 - 2868 - 250и т.д.при кодировании двух масок вспомогательный второй массив займет максимум 3мегабита и т.д. Поделиться сообщением Ссылка на сообщение
sokol-cool #82 13 февраля 2013 надеюсь автор отпишется получил ли он автомат Поделиться сообщением Ссылка на сообщение
ShadeOfLance #83 13 февраля 2013 (изменено) Только вот с массивом постфиксов такую хуйню ебашить нельзя, там порядок важенбля лол точноа не ну типа можно переделать немного, у нас же для одинаковых префиксов постфикс идет посорченый на счет того что нужно хранить порядок я не уверен, и я не уверен что вообще это возможно реализоватьно блять сжать на столько без сохранения порядка это ахуенно я считаю никто еще не предложил способ даже близко похожий на сжатие с сохранением индексацииЧувак, почитай про архиваторы. http://log.toeoda.co...s/archivers.htmПервые три метода такие очевидные, что я до них сам додумался минут за 20, при том, что такой обработкой данных никогда не занимался, остальные хитрее, я не въехал до конца. Самое простое, что можно ебануть: Анализируешь свой массив и ищешь самую популярную маску. Чтобы не заебываться, допустим, по старшим 6-8 битам, ищешь самую частую комбинацию. Точнее максимальным должно быть кол-во бит, умноженное на кол-во повторов. Допустим, оказалось, что у тебя у 400к чисел старшие биты "001010" 6х400=2.4мегабита инфы. Ебашишь второй массив с кодами, 1 и 0 тупо.Смотришь - первое число не подходит, ебашим во второй массив 0, а в конечный полностью 32 бита слова, смотрим второе - подходит, ебашим во второй массив 1, а в конечный ебашим 26 бит слова, отрезав старшие биты, смотрим третье слово, не подхоодит: во второй - ноль, ко второму слову конечного массива в конец дописываем 6 старших бит третьего слова, а оставшиеся 26 в следующее. и т.д. и таким образом прессуем слова, вырезая повторяющийся кусок, кодируя его во второй массив 1 либо 0. Он займет 2мегабита инфы. Потом этот второй массив ебашишь в конец главного, а в начале делаешь пару меток для проги, пишешь туда слово, которое заменял и гг. при восстановлении надо будет идти с самого начала: будешь смотришь на единичку, берешь 001010, плюсуешь к нему 26 бит, видишь 0 - копируешь все 32 бита. и т.д. получишь 0.4мегаБИТА сжатия за один проход при хуевом раскладе. маска может быть и не в начале 6 подряд, а например такая: ххх0 х101 ххх0 1010 1ххх хххх 0ххх ххх112 бит. на кодирование этой хуйни уйдет 2мегабита, значит если такая маска встречается в массиве чаще 167тыс. раз, то ты начинаешь получать профит. граничное условие:2 бита маски - нахуй не надо.3 бита - более 667тыс4 бита - более 5005 более 4006 - 333тыс7 - 2868 - 250и т.д.при кодировании двух масок вспомогательный второй массив займет максимум 3мегабита и т.д.не ну это хуйня женужно чтобы в самом худшем случае было немного больше двухдля 12битовой маски, если я правильно понял, худший случай это 247, что вообще пиздец хуево Изменено 13 февраля 2013 пользователем ShadeOfLance Поделиться сообщением Ссылка на сообщение
Greaver #84 14 февраля 2013 у тебя тервер есть в курсе? посчитай вероятность того, что в миллионе рандомных 32битных чисел есть 500 тысяч чисел, у которых 4 бита совпадают. Поделиться сообщением Ссылка на сообщение
sokol-cool #85 14 февраля 2013 я думаю надо захуярить 2 варианта первый если большинство чисел большие вариант с повторениямивторой если большинство чисел маленькие с уменьшением их размеров как раньше написано было Поделиться сообщением Ссылка на сообщение
ShadeOfLance #86 14 февраля 2013 у тебя тервер есть в курсе? посчитай вероятность того, что в миллионе рандомных 32битных чисел есть 500 тысяч чисел, у которых 4 бита совпадают.всм у тебя маска для определенных позиций жене важна вероятность, нужно чтобы алгоритм в худшем случае сжимал до немного больше 2 мегабайт, так что в некоторых случаях это будет норм, но отталкиваться надо от худшего случая Поделиться сообщением Ссылка на сообщение
ShadeOfLance #87 15 февраля 2013 ну вопщем все, у меня автомат у него способ немного отличался от моего, так же надо было разделять число по 2 байта, но там делалось типа двумерного массивану и офк индексация была не нужна, ибо как я и говорил, с ней сжать нихуя не получится так сильно, это тупо невозможноспасибо всем, кто участвовал в дискуссии Поделиться сообщением Ссылка на сообщение
sokol-cool #88 15 февраля 2013 у тебя тервер есть в курсе? посчитай вероятность того, что в миллионе рандомных 32битных чисел есть 500 тысяч чисел, у которых 4 бита совпадают.всм у тебя маска для определенных позиций жене важна вероятность, нужно чтобы алгоритм в худшем случае сжимал до немного больше 2 мегабайт, так что в некоторых случаях это будет норм, но отталкиваться надо от худшего случаяа захуярить анализ массива и сделать для худшего случая другой вид сжатия? ну вопщем все, у меня автомат у него способ немного отличался от моего, так же надо было разделять число по 2 байта, но там делалось типа двумерного массивану и офк индексация была не нужна, ибо как я и говорил, с ней сжать нихуя не получится так сильно, это тупо невозможноспасибо всем, кто участвовал в дискуссии твой препод идиот Поделиться сообщением Ссылка на сообщение
ShadeOfLance #89 15 февраля 2013 у тебя тервер есть в курсе? посчитай вероятность того, что в миллионе рандомных 32битных чисел есть 500 тысяч чисел, у которых 4 бита совпадают.всм у тебя маска для определенных позиций жене важна вероятность, нужно чтобы алгоритм в худшем случае сжимал до немного больше 2 мегабайт, так что в некоторых случаях это будет норм, но отталкиваться надо от худшего случаяа захуярить анализ массива и сделать для худшего случая другой вид сжатия? ну вопщем все, у меня автомат у него способ немного отличался от моего, так же надо было разделять число по 2 байта, но там делалось типа двумерного массивану и офк индексация была не нужна, ибо как я и говорил, с ней сжать нихуя не получится так сильно, это тупо невозможноспасибо всем, кто участвовал в дискуссии твой препод идиотну судя по тому, что ты написал выше про анализ массива, идиот тут ты Поделиться сообщением Ссылка на сообщение
TheQueenIsDead #90 15 февраля 2013 разбить 4 байтовый массив на два массива по 2 байта это просто топ1 оптимизация мой xboct въезжаю в иккап опять собрал дагон в аптб? мои вирсутпро + бонус респект таким пацанам как нс, даже проебав тёлку и интерненшл, он продолжает проигрывать ланы в бомжебарах со своей бывшей, а вы и дальше едьте в свои сиетлы и играйте там за миллионы Поделиться сообщением Ссылка на сообщение
ShadeOfLance #91 15 февраля 2013 разбить 4 байтовый массив на два массива по 2 байта это просто топ1 оптимизация Поделиться сообщением Ссылка на сообщение
sokol-cool #92 15 февраля 2013 у тебя тервер есть в курсе? посчитай вероятность того, что в миллионе рандомных 32битных чисел есть 500 тысяч чисел, у которых 4 бита совпадают.всм у тебя маска для определенных позиций жене важна вероятность, нужно чтобы алгоритм в худшем случае сжимал до немного больше 2 мегабайт, так что в некоторых случаях это будет норм, но отталкиваться надо от худшего случаяа захуярить анализ массива и сделать для худшего случая другой вид сжатия? ну вопщем все, у меня автомат у него способ немного отличался от моего, так же надо было разделять число по 2 байта, но там делалось типа двумерного массивану и офк индексация была не нужна, ибо как я и говорил, с ней сжать нихуя не получится так сильно, это тупо невозможноспасибо всем, кто участвовал в дискуссии твой препод идиотну судя по тому, что ты написал выше про анализ массива, идиот тут ты оператор условия в цикле что тут сложного? идиоты ты и твой препод ибо без индексации это хуитапогугли "сжатие" и ты поймешь что сжатие предполагает возможность восстановление в ИСХОДНОМ виде Поделиться сообщением Ссылка на сообщение
ShadeOfLance #93 15 февраля 2013 (изменено) а вот если бы ты уебок погугли то ты бы возможно нашел этоhttp://ru.wikipedia....атие_без_потерьи увидел бы теорему в самом началехотя ты видимо слишком идиот, чтобы понять ее, но я надеюсь ты постараешьсятак вот чтобы сжать что-то без потерь эффективно, нужно иметь дополнительную информацию, как при сжатии звука напримересли ты до сих пор считаешь, что я не прав, могу пожелать тебе удачи и доказать что я и мой препод идиоты и придумать сжатие с сохранением порядка в 2 раза Изменено 15 февраля 2013 пользователем ShadeOfLance Поделиться сообщением Ссылка на сообщение
sokol-cool #94 15 февраля 2013 там речь идет о картинках музыке и тду тебя же индексированный массивтеряя индексы теряется весь смысл массива в 99% случаевпривет вам всем студентам и преподавателям шараги Допустимость потерь если порядок не важен эту нужно указывать в условии задачиесли в условии этого нет - составитель задачи уебани это факт Поделиться сообщением Ссылка на сообщение
CoveredBySmoke #95 15 февраля 2013 самая ебучая тема на моей памяти Поделиться сообщением Ссылка на сообщение
ShadeOfLance #96 15 февраля 2013 там речь идет о картинках музыке и тду тебя же индексированный массивтеряя индексы теряется весь смысл массива в 99% случаевпривет вам всем студентам и преподавателям шараги Допустимость потерь если порядок не важен эту нужно указывать в условии задачиесли в условии этого нет - составитель задачи уебани это фактя просто хуй знает что тебе сказатьты понимаешь что это НЕВОЗМОЖНО? Поделиться сообщением Ссылка на сообщение
sokol-cool #97 15 февраля 2013 просто передай преподу что он идиот вот и всё Поделиться сообщением Ссылка на сообщение
Greaver #99 15 февраля 2013 (изменено) Смотри, как я сжал данные по твоему методу: а6б2в5д4е7ё2ж1и7й1к2л3н1о7п3р3с6т6ф1х1ч2ы3ю1 Нихуя не понятно? Исходная фраза была такая: "ты и твой препод - долбоёбы, если считаете, что подсчёт количества вариантов префиксов равен сжатию данных.", я просто посчитал все варианты букв. Передай своему долбоебскому преподу охуенную методику сжатия данных, без сохранения порядка:1. считаем количество нулей в массиве.2. считаем кол-во единиц ( 4мб - кол-во нулей)3. по теории вероятности их будет примерно по два мегабайта, но чего-то окажется меньше.4. ебашишь меньшее число в ответ.5. Та-дам! ты "сжал" исходный массив в меньше, чем два мегабайта. Кол-во единиц находишь вычитанием. иди за нобелевкой, долбоеб. надеюсь, что это не твой препод - рак, а ты, т.к хуево понял задание и сформулировал его здесь "своими словами", проебав половину смысла. ах, ты его наверное просто посортил, взял массив возможных префиксов, ... и ебанул сюда. Изменено 15 февраля 2013 пользователем Greaver Поделиться сообщением Ссылка на сообщение
ShadeOfLance #100 15 февраля 2013 Смотри, как я сжал данные по твоему методу: а6б2в5д4е7ё2ж1и7й1к2л3н1о7п3р3с6т6ф1х1ч2ы3ю1 Нихуя не понятно? Исходная фраза была такая: "ты и твой препод - долбоёбы, если считаете, что подсчёт количества вариантов префиксов равен сжатию данных.", я просто посчитал все варианты букв. Передай своему долбоебскому преподу охуенную методику сжатия данных, без сохранения порядка:1. считаем количество нулей в массиве.2. считаем кол-во единиц ( 4мб - кол-во нулей)3. по теории вероятности их будет примерно по два мегабайта, но чего-то окажется меньше.4. ебашишь меньшее число в ответ.5. Та-дам! ты "сжал" исходный массив в меньше, чем два мегабайта. Кол-во единиц находишь вычитанием. иди за нобелевкой, долбоеб. надеюсь, что это не твой препод - рак, а ты, т.к хуево понял задание и сформулировал его здесь "своими словами", проебав половину смысла. ах, ты его наверное просто посортил, взял массив возможных префиксов, ... и ебанул сюда.просто сделал мой день :lol:надеюсь повылезают еще долбаебы вроде тебя и сокола :lol: один долбаеб с группы кстати пытался ему пропихнуть сжатие по сраному ключу поржал с него знатно :lol:он такой еще типа "Ну архиваторы же по такому алгоритму работают..." Поделиться сообщением Ссылка на сообщение