|
|
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВ1. Чисто математически никто не доказал что нельзя, более того существование архиваторов доказывает противоположное. Есть класс задач для которых нет математичкского доказательства. Пример - шахматные эндшпили. Поэтому я-бы не стал бравировать терминами. Математки засмеют нас. Все мы здесь - работкики It-сегмента и все читали ТЗ которые написаны далеко не мат. языком. И все мы знаем какую свободу мысли дают нам текстовые (гуманитарные) формулировки от бизнеса. Вот и кумекаем... что за смысл был вложен. И учитываю некоторую недоговорённость или неоднозначность толкований (я уже писал про целые-вещественные и смысл упаковки-распаковки) решение данной задачи я-бы отложил до выяснения доп-деталей. Очевидно что автор недоговаривает. Возможно задача решается когда будет известо ограничене на пары {a,b} или на точность кодирования (аппроксимации) чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 00:08 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВИзопропилно построители квадратуры круга - не сдаются. Безумству храбрых поем мы песню! (С) 1. Чисто математически никто не доказал что нельзя, более того существование архиваторов доказывает противоположное. 2. Никто не собирался 34 засунуть в 32. Наверняка существует нечто, многочлен, группа, магические числа и хз еще что зная, что позволит хранить недостающую информацию. Я уже доказал и успокоился. К сожалению действительно не получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 01:45 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
А архиваторы доказывают ровно обратное. При любом шифровании(сжатии) должен быть такой вариант что размер целевого файла с учётом дополнительных расходов памяти или без этого учёта не изменится. Доказать что способа не существует тоже просто. Пусть у нас часть бит x используется для кодирования какой-либо комбинации исходных чисел, группы, многочлена и чего угодно. Сколько вариантов даёт эта часть бит ? 2^x. Пусть оставшуюся часть бит мы используем на коллизии. На каждый вариант из пространства 2^x у нас есть максимум 2^y коллизий которые могут быть успешно разрешены. В таком случае мы имеем максимум 2^(x+y) вариантов всего. Это очень упрощенный вариант, можно доказать строже но суть не изменится. Мы могли бы это сделать, но с потерей точности. Тип float, например, о котором говорил Марк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 02:16 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВ1. Чисто математически никто не доказал что нельзя, более того существование архиваторов доказывает противоположное. Архиваторы работают за счет наличия избыточной информации. После первого сжатия избыточность исчезает и последующие сжатия уже пожатого не дают никакого эффекта. ЕвгенийВ2. Никто не собирался 34 засунуть в 32. Наверняка существует нечто, многочлен, группа, магические числа и хз еще что зная, что позволит хранить недостающую информацию. Это только в случае если данные избыточны, т.е. изначально заложен какой-то алгоритм расчета одной части по остальным. Например контрольная сумма и т.п. Тогда эту расчетную часть можно выкинуть и заново рассчитать при восстановлении. Но это должно быть заложено изначально, а не найдено эвристическим образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 07:54 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Dima TЕвгенийВ1. Чисто математически никто не доказал что нельзя, более того существование архиваторов доказывает противоположное. Архиваторы работают за счет наличия избыточной информации. После первого сжатия избыточность исчезает и последующие сжатия уже пожатого не дают никакого эффекта. Давно хотел провести эксперимент. Взять хороший генератор шума на базе Secured Random, сформировать файлих хотя-бы на 1Г. И дать возможноть архиваторам (WinRar,7z) его пожать. Меня интересует - поймет ли архиватор на основании полного файла или какой-то выборки что его действия были бесполезны. Или продолжит как ёж-трудяга пыхтеть до победного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 11:34 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Арктур Менгск__Avenger__, Аффтар! Ты куда пропал? Ты напиши, за каким хреном тебе это понадобилось? С чего это вообще началось? Мысль эта у тебя как возникла? Какую задачу решаешь? Хранение данных паспортов. Пока 96`000`000 http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 14:01 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
И + минимальный размер файла, потому-что его рассылка идет на удаленные точки по медленным каналам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 14:03 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
__Avenger__Арктур Менгск__Avenger__, Аффтар! Ты куда пропал? Ты напиши, за каким хреном тебе это понадобилось? С чего это вообще началось? Мысль эта у тебя как возникла? Какую задачу решаешь? Хранение данных паспортов. Пока 96`000`000 http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2 Вероятно, не все возможные серии используются. Тогда используемые серии хранить в отдельном массиве, а кодировать индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 14:07 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovВероятно, не все возможные серии используются. Первые две цифры серии паспорта соответствуют коду ОКАТО региона, в котором выдан паспорт; третья и четвертая цифры серии паспорта соответствуют последним двум цифрам года выпуска бланка паспорта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 16:06 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ИзопропилAleksandr SharahovВероятно, не все возможные серии используются. Первые две цифры серии паспорта соответствуют коду ОКАТО региона, в котором выдан паспорт; третья и четвертая цифры серии паспорта соответствуют последним двум цифрам года выпуска бланка паспорта Регионов ~90 Как вариант сначала брать год, но в 2043 году все наестся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 16:32 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Dima TКак вариант сначала брать год, но в 2043 году все наестся. в базе - DECIMAL(10) и не брать в голову а вот при передаче данных если нужно просто передать список - со сжатием можно хорошо развлечься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 16:44 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
__Avenger__Арктур Менгск__Avenger__, Аффтар! Ты куда пропал? Ты напиши, за каким хреном тебе это понадобилось? С чего это вообще началось? Мысль эта у тебя как возникла? Какую задачу решаешь? Хранение данных паспортов. Пока 96`000`000 http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2 Судя по расширению файла csv (не могу пока скачать) данные хранятся в текстовом виде, то есть на xxxx xxxxxx - тратится минимум 10 байт, а то и 20 если в unicode. + перевод строки. Подобные штуки здорово ужмутся в размере, если применить префиксное дерево. http://citforum.ru/database/articles/bst/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 16:47 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВxxxx xxxxxx - тратится минимум 10 байт, а то и 20 если в unicode. + перевод строки. ascii, серия от номера запятой отделена(лидирующие нули присутсвуют), перевод строки - 0A ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 16:59 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ИзопропилЕвгенийВxxxx xxxxxx - тратится минимум 10 байт, а то и 20 если в unicode. + перевод строки. ascii, серия от номера запятой отделена(лидирующие нули присутсвуют), перевод строки - 0A 12 байт на номер, а можно short и int, разделитель - позиция в файле, итого 6 байт. Легким движением уменьшаем в 2 раза. Можно серию в имя файла и тупо список номеров в сам файл (как int), еще сильнее уменьшим. Хотя для номера хватит 5 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 17:08 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
__Avenger__Хранение данных паспортов.Тогда, имхо, хранить строкой. А то введут, например, буквы, которые в Int неудобно запихивать. Да и экономия мизерная выходит на фоне всего остального объема паспортных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 17:15 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
miksoft__Avenger__Хранение данных паспортов.Тогда, имхо, хранить строкой. А то введут, например, буквы, которые в Int неудобно запихивать. Да и экономия мизерная выходит на фоне всего остального объема паспортных данных. О как! А я то по названию файла предположил, что там недействительные паспорта и акромя нумеру белее ничего не треба... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 17:23 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Очевидно что для баз данных никакой особо экономии перевод в int не даст. Там - свои накладные расходы на кортежи, блоки и потерянное пространство экстентов (практически во всех DBMS). А с точки зрения memory на app-уровне.. ну можно сэкономить. Только как усложниться при этом доступ? int + short одна статистика. Одни свойства. long int - другая. Другие свойства. Можно и просто в char[] оставить. На мой взгляд вполне себе неплохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 17:37 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВА я то по названию файла предположил, что там недействительные паспорта и акромя нумеру белее ничего не треба...Конкретно в этом файле, может быть, больше ничего и нет. Не смотрел. Но он же не будет существовать один в вакууме. Наверняка будут и другие данные, с которым будет происходить сверка этого списка. А даже банальный JOIN становится куда более сложным (а то и сильно медленнее), если форматы данных не совпадают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 17:45 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Писать как строку и паковать чем-нибудь хорошо жмущим (7z, rar). Чтобы лучше паковалось - отсортировать. Такой текст должен жаться раз в 10. Т.е. если имеем 12 байт на строку, то после запаковки будет 10 бит на один номер. Набор из 32-битных номеров особо жаться не будет архиватором. Думаю после запаковки будет 25-30 бит на номер. Если проблема в медленных каналах, то как вариант слать только изменения. Не так уж и много паспортов теряют. По сути стандартная репликация. Клиент засылает свое текущее состояние, сервер скидывает ему изменения. Периодически можно засылать полное состояние. PS Кто-нибудь нажимал на ссылку тут 18740263 ? Я ткнул, firefox ушел в аут, начал усиленно отжирать память и молотить процом. За пять минут занял пару гигов оперативки, дальше я задачу снял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 17:48 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Dima TPS Кто-нибудь нажимал на ссылку тут 18740263 ? Я ткнул, firefox ушел в аут, начал усиленно отжирать память и молотить процом. За пять минут занял пару гигов оперативки, дальше я задачу снял.Там сервер отдает неверный заголовок Content-Type text/plain; charset=utf-8, поэтому браузер пытается скачать его весь и показать его как текстовый файл. Нужно жать ПКМ и "Сохранить объект как..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 17:52 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Dima TPS Кто-нибудь нажимал на ссылку тут 18740263 ? да. скачался архив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 18:16 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Нормально скачался. 1гиг. 96 383 652 номеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 18:19 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Dima T Набор из 32-битных номеров особо жаться не будет архиватором. Думаю после запаковки будет 25-30 бит на номер. Набор случайных не жмется вообще, после сортировки - 43% от начального уровня ужался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 18:20 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВDima T Набор из 32-битных номеров особо жаться не будет архиватором. Думаю после запаковки будет 25-30 бит на номер. Набор случайных не жмется вообще, после сортировки - 43% от начального уровня ужался. Осталось затестить тоже самое в тексте: XXXX XXXXXX<enter> Для чистоты эксперимента попробую сейчас тот гиг скачать, как понимаю они там открытым текстом без сжатия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 18:48 |
|
||
|
Два число в одно и обратно
|
|||
|---|---|---|---|
|
#18+
Скачал, отсортировал. Код: sql 1. правда переводы строк стали двухбайтовыми (0xA 0xD), файл чуть увеличился. Из интересных наблюдений: там все в UTF и лажа из нереальных номеров серии 0000, как понял Советские паспорта тоже естьР_-Р_Р_586151Р_-Р_Р_608275Р_Р_ЕР685239Р_ЕР637039Р_Р_Р'Р_601006РЇР"013332Р_Р_0686885Р'Р"30275311Р"ЕР574471Р_2ЕР73260700000000010000000002......XVР_Р"553080XVР'Р_721378XVР'Р"617824XVР'Р"719576XVЕР590580XVЕР656803XVР_Р_528150XVР>Р_706956XVР>Р_721957XVI-575246XVIРў693061XVII524858XVII645989XX-Р_519379XX-Р_559701XX-Р_646649XX-Р_654615XXР_Р"548495XXР_Р"587957XXР_Р"706757XXР'Р_736496XXР-Р"557014XXР-Р"582132XXР_РR707099XXI-719712XXV-746623 Там одними цифрами все не ограничивается, про перегон в int можно забыть. Жму раром исходный файл и сортированный. Максимальное сжатие. Говорит 50 минут осталось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 19:21 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39157775&tid=1340797]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
150ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 521ms |

| 0 / 0 |
