Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив чисел->одно число 
:(
    Опции темы
Fixin
Дата 7.5.2004, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: нет
Всего: 18



Првет Всем!
Проблема в том, что этот вопрос я уже задавал, скачивал, форматировал... и вот пришел опять.
Есть массив порядковых чисел, но расположенных по псевдо-случайным индексам. Нужно превратить всю эту муть сохранить в кратком виде, например числе, а потом опять восстановить как было.
Если непонятно, то спрашивайте, а сейчас время поджимает.
PM MAIL ICQ   Вверх
Dexter
Дата 7.5.2004, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

Репутация: нет
Всего: 4



Не понятно особенно здесь:

Цитата
Нужно превратить всю эту муть сохранить в кратком виде, например числе, а потом опять восстановить как было.



--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
dargaard
Дата 10.5.2004, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 450
Регистрация: 7.5.2004

Репутация: нет
Всего: 25



Драсте...

Просто идея

к слову есть массив чисел
[1, 2, 3]

рассмотрим все возможные перестановки и каждой перестановке назначим номер

[1, 2, 3] = 1
[1, 3, 2] = 2
[2, 1, 3] = 3
[2, 3, 1] = 4
[3, 1, 2] = 5
[3, 2, 1] = 6

Следовательно зная просто длину псевдо-случайного массива можно легко определить его номер
(пример: если наш массив был [3, 1, 2] то его номер 5 - 5ая перестановка массива [1, 2, 3])

очень медленный алгоритм будет таков
Сжатие:
строишь из изначального порядкового массива все возможные (мат. перестановка) и сверяешь с исходным
как нашел записываешь номер массива, длинну и мин. элемент


Восстановление:
сперва по мин элементу и длинне стоишь порядковый массив
ну а потом перемешиваешь (используя мат. перестановку) столько раз каков был номер


-------------------------
Все это хорошо для небольших массивов так как при N элементах надо перебрать N! вариантов

к примеру уже для N=20 вариантов будет 2432902008176640000
В принципе все равно места заимет меньше чем хранить 20 элементов, но скорость... так что придется как нить оптимизировать алгоритм.


Это сообщение отредактировал(а) dargaard - 11.5.2004, 02:06


--------------------
Ты должна сделать добро из зла 
потому что его больше не из чего
сделать. Р.П.Уоррен
PM MAIL WWW ICQ   Вверх
Гость_Eugene
Дата 11.5.2004, 17:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Hello, ALL !

Не подойдёт этот вариант, не подойдёт !
Сосчитай кол-во цифр в числе кол-ва перестановок.
Память для его хранения == количеству "сжимаемой" инф-ции.
Соотв-нно никакого сжатия нет, увы.
Sorry, если огорчил smile.gif

Удачи !
  Вверх
dargaard
Дата 11.5.2004, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 450
Регистрация: 7.5.2004

Репутация: нет
Всего: 25



А не обязательно же по одной цифре хранитьsmile.gif То же число
2432902008176640000 можно хранить в 64 битах (2^64=18446744073709551616)
Хранить 20 элементов при этом заимет как мин (20*8 = 160 битов, а как 1 баита не станет хватать так и то больше)

Правда чем дальше тем хужеsmile.gif для 25 элементов число придется хранить уже в 92 битах.
Ну чтож будем думать дальшеsmile.gif



--------------------
Ты должна сделать добро из зла 
потому что его больше не из чего
сделать. Р.П.Уоррен
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 12.5.2004, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата
Проблема в том, что этот вопрос я уже задавал, скачивал, форматировал... и вот пришел опять.

что-то непонятно, что имеется в виду под "скачивал, форматировал..."
требуется другой ответ (ну, может, тот не подошел) или цсловия задачи изменились?


--------------------
qqq
PM WWW   Вверх
Fixin
Дата 12.5.2004, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: нет
Всего: 18



Цитата(maxim1000 @ 12.5.2004, 13:07)
Цитата
Проблема в том, что этот вопрос я уже задавал, скачивал, форматировал... и вот пришел опять.

что-то непонятно, что имеется в виду под "скачивал, форматировал..."
требуется другой ответ (ну, может, тот не подошел) или цсловия задачи изменились?

Привет! Опять инета небыло.
То решение было рабочим(не проверял, времени не нашлось), но я с ним не разобрался: просто сохранил на жёсте, а потом форматнул диск. А найти на форуме теперь решение не могу. Помню только, что там было про умножение числа на индекс, но точно не помню.
PM MAIL ICQ   Вверх
sergejzr
Дата 12.5.2004, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Fixin,
Заходишь в свой "профиль" и выбираешь: " Найти все сообщения этого пользователя "

Там находишь ссылку на тему.
http://forum.vingrad.ru/index.php?act=ST&f...ndpost&p=113751

PS: Вот одно из преимуществ регистрации smile.gif


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.