2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Сохранение двух чисел в одном и восстановление
Сообщение26.11.2007, 18:39 


26/11/07
6
Сущность задачи

Необходимо вывести алгоритм при котором в некоторое число находящееся в строго определенных граница (к примеру от 0 до 65535) должно быть вложено другое число (для простоты задачи от 0 до 1). При этом алгоритм искажения должен быть полностью обратим, то есть исходные значения полностью восстанавливаются не менее чем при одном цикле. Более не обязательно. Такой алгоритм необходим для указания того, что в некторой системе произошел тот или иной процесс.

Обязательные требования
- значение числа не может выходить за строго определенные условиями границы;
- значения обоих чисел должны восстанавливаться точно не менее одного раза.

 Профиль  
                  
 
 
Сообщение26.11.2007, 18:41 
Экс-модератор
Аватара пользователя


30/11/06
1265
в Computer Science

 Профиль  
                  
 
 
Сообщение27.11.2007, 12:10 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Уточните, пожалуйста, сколько именно чисел (одно или два) хочется упаковать в число от 0 до $2^{16}-1$ и сколько возможных значений может принимать каждое из них.

 Профиль  
                  
 
 
Сообщение27.11.2007, 14:52 


26/11/07
6
Всего два числа. Каждое из которых находится в произвольном диапазоне! Для примера первое от 0 до 65535, а второе - от 0 до 1. Соответственно, исходя из условий искаженное число должно находиться большем диапазоне, т.е от 0 до 65535. Второе условие - это точное восстановление исходных чисел из искаженного. У меня получается выполнить только одно из двух условий, но не более!!!

P.S. Благодарю за проявленный интерес и понимание, а также очень благодарен за помощь всем, кто ее сможет оказать!!! Если эта задача будет решена, то я в долгу не останусь!!!

 Профиль  
                  
 
 
Сообщение28.11.2007, 11:11 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Все равно не до конца понял, сколько значений может принимать каждое из чисел. "От 0 до 1" - это сколько значений?

Напомню простую вещь (извиняюсь, если это и так хорошо известно). Если одно число может принимать $n$ возможных значений, а второе - $m$ значений, то количество различных пар чисел равно $nm$. Следовательно, то число, в которое Вы хотите эту пару упаковать, обязано принимать не менее $nm$ значений. В противном случае (по принципу Дирихле) однозначное восстановление невозможно.

 Профиль  
                  
 
 
Сообщение28.11.2007, 13:38 


26/11/07
6
На самом деле любое!

 Профиль  
                  
 
 
Сообщение28.11.2007, 14:06 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Это невозможно. "Любых" значений бесконечно много, их нельзя закодировать целым числом, лежащим в фиксированных границах (т.е. принимающим лишь конечное число значений).

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

 Профиль  
                  
 
 
Сообщение28.11.2007, 16:24 


26/11/07
6
К сожалению я не могу раскрыть здесь Вам возможный алгоритм кодирования двух и более чисел с условием того, что результат искажения принимает конечное число значений!!! Это один из моих алгоритмов шифрования! Это действительно возможно! Возможно есть другой путь, в частности если два или более конечных числа поставить в зависимость друг от друга. В частности, получение неизвестного числа из искаженного так, чтобы получилось известное число (с возможными отклонениями в меньшую либо в большую сторону).

Также я использовал алгоритм шифрования с тем, чтобы привести число превышающее диапазон значений в необходимый! Также работает! Но в этом случае восстановить число достоверно невозможно, даже при том, что есть флаг указывающий на произведенное ранее искажение!!!

 Профиль  
                  
 
 Re: Сохранение двух чисел в одном и восстановление
Сообщение03.12.2007, 02:49 


22/10/07
54
pereshein писал(а):
Сущность задачи
Необходимо вывести алгоритм при котором в некоторое число находящееся в строго определенных граница (к примеру от 0 до 65535) должно быть вложено другое число (для простоты задачи от 0 до 1).


Действительно, сущность задачи не понятна. С одной стороны, первое число, наверное, короткое целое без знака (Word, short unsigned), кодируемое двумя байтами. С другой стороны, второе число, скорее всего, с плавающей точкой float (4 байта) или double (8 байт) или с фиксированной точкой (любое число байт, но фиксированное число десятичных разрядов) или целое без знака, которое уже в программе делится на некоторый делитель для получения числа с плавающей точкой. В любом случае, число с плавающей точкой по своей природе является приближенной величиной и не может быть восстановлено абсолютно точно, а только с некоторой минимальной погрешностью. Именно поэтому для проверки на равенство двух чисел с плавающей точкой рекомендуют использовать не (=), а диапазон >= <=

Какой способ кодирования Вы имеете ввиду?
Какие значения(тип, конкретные величины, разрядность шкалы) могут принимать эти числа?

 Профиль  
                  
 
 Re: Сохранение двух чисел в одном и восстановление
Сообщение05.12.2007, 04:08 
Заслуженный участник


15/05/05
3445
USA
CyberCraft писал(а):
Действительно, сущность задачи не понятна.
Еще бы!
В интернете как-то рекламировался супер-компрессор файлов, который ЛЮБОЙ файл сжимал до 1024 байт.
Идея просто носится в воздухе :)

 Профиль  
                  
 
 
Сообщение05.12.2007, 13:08 


26/11/07
6
Искомый алгоритм не является каким-либо компрессором, а способом сохранения состояния возникающего процесса!!!

 Профиль  
                  
 
 
Сообщение06.12.2007, 07:54 
Экс-модератор
Аватара пользователя


30/11/06
1265
pereshein писал(а):
а способом сохранения состояния возникающего процесса!!!

Это имеет значение?

 Профиль  
                  
 
 
Сообщение08.12.2007, 09:45 


26/11/07
6
Очень большое!

 Профиль  
                  
 
 
Сообщение08.12.2007, 20:04 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
нг писал(а):
Это имеет значение?

pereshein писал(а):
Очень большое!

Похоже, Вы не туда пришли. Не на тот форум. :lol:

Здесь все считают, что значения не имеет.

Это математики: при подсчёте им всё едино: что блины, что коровьи блины. 1, 2, 3, …

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group