Index · Правила · Поиск· Группы · Регистрация · Личные сообщения· Вход

Список разделов Компьютерная безопасность, коды, доступы и т.д.
 
 
 

Раздел: Компьютерная безопасность, коды, доступы и т.д. Необходим алгоритм сжатия 

Создана: 05 Апреля 2011 Втр 11:33:44.
Раздел: "Компьютерная безопасность, коды, доступы и т.д."
Сообщений в теме: 27, просмотров: 10589

На страницу: Назад  1, 2  Вперёд
  1. taurus_xxl


    Завсегдатай


    Более 10 лет на форуме
    05 Апреля 2011 Втр 11:33:44
    Есть такая задача: строка символов длиной от 6 до 32 знаков, может состоять из букв a-z, цифр 0-9 и трех знаков -._(тире, нижний подчерк и точка). Необходимо перевести эту строку в числовую, то есть типа 096583932047 и максимально ее сжать по длине, но чтобы потом можно было обратными действиями восстановить начальную строку. Кто нибудь подскажет каким образом это возможно сделать?
  2. 05 Апреля 2011 Втр 15:01:50
    Мне вспомнился [внешняя ссылка]. Хотя это не совсем сжатие.
  3. 05 Апреля 2011 Втр 15:06:18
    Сжатие имеет смысл, когда объем информации достаточно большой, по крайней мере гораздо больше, чем алфавит дерева Хаффмана. В остальных случаях используются всякие мнемоники и тупое запоминание. Максимум, что тут можно сделать - перекодировать префиксным кодом каждый символ.
  4. taurus_xxl


    Завсегдатай


    Более 10 лет на форуме
    05 Апреля 2011 Втр 15:34:07
    просто перекодировать не подходит, нужно еще сжать ее. Например имеем строку mail.ru. После подстановки по таблице ASCII получаем 109;97;105;108;46;114;117. Это можно как то сжать, чтобы получить минимальное количество цифр?
  5. heretic


    Завсегдатай


    Более 10 лет на форумеМуж.
    05 Апреля 2011 Втр 15:40:55
    Можно, если придумать свою кодировку, где каждый символ закодировать числом от 0 до 39 (т.к. в исходном задании 40 символов). Каждый символ будет занимать максимум 6 бит. Если в один байт запихать эти 6 бит и еще 2 от следующего то получим какоето сжатие. А точнее на 25% уменьшится объем информации.
    ЗЫ Надеюсь понятно написал:)
  6. taurus_xxl


    Завсегдатай


    Более 10 лет на форуме
    05 Апреля 2011 Втр 16:18:16
    Вроде понятно, но только алфавит состоит не из 40 а из 39 символов. Возникла другая идея. А если строку отображать не только цифрами но еще и знаком * и #. Получается можно разделить комбинацию на группы и сжать сильнее? Вобщем у меня задача следующая. Я на своей АТС хочу сделать звонки с мобильных на Skype. С клавиатуры мобильника невозможно набрать логин скайпа, поэтому необходимо что то типа калькулятора, в который вводишь логин скайпа а он выдает числовую последовательность. Человек дозванивается на номер шлюза и вводит эту последовательность, моя атс ее декодирует и соединяет с нужным абонентом скайпа.
  7. heretic


    Завсегдатай


    Более 10 лет на форумеМуж.
    06 Апреля 2011 Срд 8:56:18
    Каждому абоненту, звонящему с мобильного, необходимо будет выдать номера абонентов скайпа (которые по сути являются зашифрованными логинами).
    Не проще ли составить список абонентов скайпа, которым звонят люди с мобильных и заранее присвоить им какието номера. Например четырехзначные. И раздать их владельцам мобильных. ?
  8. taurus_xxl


    Завсегдатай


    Более 10 лет на форуме
    06 Апреля 2011 Срд 9:28:25
    нет не проще. это получается каждый раз чтобы прописать нового человека люди будут звонить мне, я буду прописывать, выдавать номер и перезапускать АТС (при условии, что я нахожусь у компа). Я хочу чтобы все автоматически работало, пусть даже зашифрованный код будет не меньше 10 цифр. Вобщем я полазил по интернету, походу сжать не получится, поэтому идея не выполнима:(
  9. heretic


    Завсегдатай


    Более 10 лет на форумеМуж.
    06 Апреля 2011 Срд 10:37:52
    Можно попробовать отправкой смс логина. Твоя АТС сама генерирует номер и высылает ответное смс с номером абонента.
  10. 06 Апреля 2011 Срд 11:13:49
    heretic писал :каждый символ закодировать числом от 0 до 39 (т.к. в исходном задании 40 символов). Каждый символ будет занимать максимум 6 бит.

    Я ж говорю — RADIX-50. Там даже не шесть, а пять с третью бит на символ.
  11. 06 Апреля 2011 Срд 11:21:10
    taurus_xxl писал(а) : просто перекодировать не подходит, нужно еще сжать ее. Например имеем строку mail.ru. После подстановки по таблице ASCII получаем 109;97;105;108;46;114;117. Это можно как то сжать, чтобы получить минимальное количество цифр?


    Алгоритмом Хаффмана. Он как раз дает префиксные коды.
  12. taurus_xxl


    Завсегдатай


    Более 10 лет на форуме
    06 Апреля 2011 Срд 11:29:20
    Groudin писал :
    taurus_xxl писал(а) ... : просто перекодировать не подходит, нужно еще сжать ее. Например имеем строку mail.ru. После подстановки по таблице ASCII получаем 109;97;105;108;46;114;117. Это можно как то сжать, чтобы получить минимальное количество цифр?


    Алгоритмом Хаффмана. Он как раз дает префиксные коды.


    Насколько я знаю хаффман требует так же и передачу всего дерева. Как я это в цифрах передам? Или может я вас не так понял. Дайте ссылку на то что вы советуете.
  13. 06 Апреля 2011 Срд 11:31:30
    taurus_xxl писал(а) : Насколько я знаю хаффман требует так же и передачу всего дерева. Как я это в цифрах передам?


    полно адаптивных вариантов
  14. subver


    Частый гость


    Более 10 лет на форумеМуж.
    06 Апреля 2011 Срд 11:34:03
    а если просто завести базу данных и пусть чел через сайт вводит логины и смотрит какой ему номер присваивается, а атс уже логины по номеру из базы брать будет?

    Еще как вариант - брать короткий хэш от логина, и его уже предавать в виде цифр, не думаю что для логинов будет большое количество коллизий, если вообще будут. (хотя все равно нужно хранить базу обратных преобразований).
  15. taurus_xxl


    Завсегдатай


    Более 10 лет на форуме
    06 Апреля 2011 Срд 11:49:57
    subver писал : а если просто завести базу данных и пусть чел через сайт вводит логины и смотрит какой ему номер присваивается, а атс уже логины по номеру из базы брать будет?

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

    не хочу открывать наружу доступ. желательно чтобы все работало через тональный набор на телефоне звонящего
На страницу: Назад  1, 2  Вперёд