реклама на сайте
подробности

 
 
> Возможно ли?
Adv
сообщение Aug 1 2009, 13:09
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Уважаемые Знатоки!
Есть следующая задача:
имеются четыре восьмиразрадных числа, которые образуют уникальное сочетание (адрес, например),
над каждым из них может быть выполненна табличная операция по кодированию в 36-ти (или в 32-х) битное число,
далее ВОПРОС:
какие математические действия необходимо произвести над полученными (или исходными) числами, чтоды однозначно убедиться, что это то самое уникальное сочетание четырех восьмиразрадных чисел? Какой (и существует ли) алгоритм такой операции?

ЗЫ: Что такое дешифратор мне известно....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Aug 1 2009, 13:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Попробуйте выразить это математическими терминами. Они более или менее общеприняты, из-за чего будет понятно, о чём идёт речь. Возьмите для примера книгу по математике. В нынешнем виде постановка задачи совсем непонятна (мне, по крайней мере).
Или не секретничайте выдайте жизненную ситуацию, в которой возникла эта задача. Так тоже будет понятнее.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 14:30
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 16:58) *
Попробуйте выразить это математическими терминами. Они более или менее общеприняты, из-за чего будет понятно, о чём идёт речь. Возьмите для примера книгу по математике. В нынешнем виде постановка задачи совсем непонятна (мне, по крайней мере).
Или не секретничайте выдайте жизненную ситуацию, в которой возникла эта задача. Так тоже будет понятнее.


Так я про дешифратор-то не зря написал.... И с постановкой задачи , вроде, корректно....
И так, повторяю, есть адрес. Надо убедиться, что он действительный (требуемый для срабатывания системы в дальнейшем, для пропуска данных в обработку, например). Сделать надо аппаратно. Маски большого размера неприемлимы - у меня их негде хранить (адрес может быть более 4-х восьми разрядных чисел, скажем, 6 или 10) . Есть ли математическое решение (разделить, умножить, сложить, вычесть, закодировать исходные числа перед математическими операциями и т.п.) этой задачи?
Пропустил важное - в ходе решения результат должен выдаваться как бит. ВСЕ ЧЕТЫРЕ ЧИСЛА ПРАВИЛЬНЫЕ и их ПОРЯДОК (1-ое,2-ое,3-ие,4-ое правильная; 1-ое,3-ие,2-ое,4-ое - неправильная) правильный.

Сообщение отредактировал Adv - Aug 1 2009, 14:35
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 14:44
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Adv @ Aug 1 2009, 18:30) *
И так, повторяю, есть адрес.

Почтовый адрес?

Цитата(Adv @ Aug 1 2009, 18:30) *
Надо убедиться, что он действительный

То есть прогнать этот адрес по полному списку всех действительных почтовых адресов?

Я же говорю, непонятно. Тут телепатов нет, чудес не ждите.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 14:53
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 17:44) *
Почтовый адрес?.


Да хоть адрес для ОЗУ. Разница-то какая?? Адрес - он и есть адрес.
В нём НЕТ признаков любого кодирования.


Цитата(scifi @ Aug 1 2009, 17:44) *
То есть прогнать этот адрес по полному списку всех действительных почтовых адресов?.


Нет. По списку ДЛЯ КОНКРЕТНОГО УСТРОЙСТВА ОТБОРА (т.е моего устройства)

Цитата(scifi @ Aug 1 2009, 17:44) *
Я же говорю, непонятно. Тут телепатов нет, чудес не ждите.


Не жду. Потому спрашиваю. Известно ли для этого математическое решение или я просто зря в это ввязался.
Это дешифратор адреса, по сути. И у меня в распоряжении только операции табличного преобразования входных чисел и математические операции.

Сообщение отредактировал Adv - Aug 1 2009, 15:06
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 15:18
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Adv @ Aug 1 2009, 18:53) *
Да хоть адрес для ОЗУ. Разница-то какая?? Адрес - он и есть адрес.

Разница огромная. Такие понятия, как "адрес" и "действительный адрес" могут быть сильно разными.
К примеру, IP-адрес. Это 4 числа от 0 до 255, разделённые точками. "Действительным" IP-адресом можно считать любой IP-адрес, не попадающий в один из известных диапазонов "приватных" IP-адресов (можно придумать ещё пару простых правил). То есть задача определения "действительного адреса" может быть очень простой.
Если же речь идёт о почтовых адресах, то тут, к примеру, можно считать "действительным адресом" такой адрес, который входит в КЛАДР (Классификатор адресов России). Это довольно большая таблица, и её хранение и поиск по ней может быть довольно накладным.
Поэтому и спрашиваю. У задачи в такой расплывчатой формулировке общего решения быть не может.
Надо определиться, что такое "адрес" и что такое "действительный адрес".
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 15:37
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Это протосто входной адрес.
Пример того, что я хотел бы получить (сильно упрощённый, но точный).
Допустим, есть дешифратор адреса 8-ми разрядного кода. На выходе 255 шин ДА\НЕТ. Используются 1, 3, 8, 23, 46, 74, 124, 234, 245 шины. Такое - только математически, и только для требуемых шин.
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 15:48
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Adv @ Aug 1 2009, 19:37) *
Это протосто входной адрес.
Пример того, что я хотел бы получить (сильно упрощённый, но точный).
Допустим, есть дешифратор адреса 8-ми разрядного кода. На выходе 255 шин ДА\НЕТ. Используются 1, 3, 8, 23, 46, 74, 124, 234, 245 шины. Такое - только математически, и только для требуемых шин.

Вы всё время что-то недоговариваете. Есть дешифратор, понятно. А дальше что? В чём состоит задача?
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 15:53
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 18:48) *
Вы всё время что-то недоговариваете. Есть дешифратор, понятно. А дальше что? В чём состоит задача?


Простите, чего недоговариваю-то??
Ранее написано - используются ОПРЕДЕЛЁННЫЕ комбинации из множества входных кодов адреса -1, 3, 8, 23, 46, 74, 124, 234, 245 шины.
Аппаратно это просто. А возможно ли математически??
Или ещё пример - есть ОЗУ с 8-ми битным входным адресом в котором при поступлении на вход адресов 1, 3, 8, 23, 46, 74, 124, 234, 245 на выходе будет еденица (ДА). Для остальных адресов -ноль (НЕТ).

Сообщение отредактировал Adv - Aug 1 2009, 15:57
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 16:05
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Adv @ Aug 1 2009, 19:53) *
Простите, чего недоговариваю-то??
Ранее написано - используются ОПРЕДЕЛЁННЫЕ комбинации из множества входных кодов адреса -1, 3, 8, 23, 46, 74, 124, 234, 245 шины.
Аппаратно это просто. А возможно ли математически??

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

Предположим, речь идёт о кодовом замке, где код - это 4 8-разрядных числа.
Делаем так. При вводе первого 8-разрядного числа (условно 0xAA) табличным преобразованием делаем из него 32-разрядное число 0xAA000000. При вводе второго 0xBB делаем из него 0x00BB0000. Потом 0x0000CC00 и 0x000000DD. Потом полученные 4 32-разрядных числа складываем и получаем 0xAABBCCDD. Далее сравниваем с верным кодом и говорим "да" или "нет".
Для примера таблица первого преобразования очень простая:
0x00 -> 0x00000000
0x01 -> 0x01000000
0x02 -> 0x02000000
...
0xFF -> 0xFF000000 (всего 256 строк)
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 16:35
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 19:05) *
То есть это что-то похожее на кодовой замок, где отпирающий код - это последовательность определённого числа (неповторяющихся) 8-разрядных чисел, введённых в определённом порядке?
И нужно работу такого замка описать операциями табличного преобразования и арифметическими операциями на неком (пока неизвестном) языке программмирования?

Предположим, речь идёт о кодовом замке, где код - это 4 8-разрядных числа.
Делаем так. При вводе первого 8-разрядного числа (условно 0xAA) табличным преобразованием делаем из него 32-разрядное число 0xAA000000. При вводе второго 0xBB делаем из него 0x00BB0000. Потом 0x0000CC00 и 0x000000DD. Потом полученные 4 32-разрядных числа складываем и получаем 0xAABBCCDD. Далее сравниваем с верным кодом и говорим "да" или "нет".
Для примера таблица первого преобразования очень простая:
0x00 -> 0x00000000
0x01 -> 0x01000000
0x02 -> 0x02000000
...
0xFF -> 0xFF000000 (всего 256 строк)


И храним длинную маску 0xAABBCCDD. Если правильных кодов много - то и массив масок большой и громоздкий. Для этого у меня нет ресурсов.
Это тот же самый ПРОСТОЙ, или ПРЯМОЙ, дешифратор. Можно прямо введённый код дешифровать, без сложения, байтам просто вес присваивается - первому - старший, второму - третий, третьему - второй ну и четвёртому младший. Тот же 32-х разрядный адрес, что и Вы сформировали.
ВОПРОС есть ли какая-нибудь последовательность действий ТИПА (возможны любые, но МАТЕМАТИЧЕСКИЕ):
- кодирование первого числа
- кодирование второго числа
- кодирование третьегочисла
- кодирование четвёртого числа
- сумма первое + второе + третье + четвёртое
- деление на костанту
- XOR байтов остатка
- результат (ДА или НЕТ)

число операций может быть другим , действия - тоже.
НО тут не должно быть МАСОК (и устройтв для их хранения) Допускается наличие нескольких констант.

Сообщение отредактировал Adv - Aug 1 2009, 16:40
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 16:49
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Adv @ Aug 1 2009, 20:35) *
ВОПРОС есть ли какая-нибудь последовательность действий ТИПА (возможны любые, но МАТЕМАТИЧЕСКИЕ):
- кодирование первого числа
- кодирование второго числа
- кодирование третьегочисла
- кодирование четвёртого числа
- сумма первое + второе + третье + четвёртое
- деление на костанту
- XOR байтов остатка
- результат (ДА или НЕТ)

число операций может быть другим , действия - тоже.
НО тут не должно быть МАСОК (и устройтв для их хранения) Допускается наличие нескольких констант.

Если я правильно понял условия задачи, то это невозможно. Ведь если верный код - это 4 ПРОИЗВОЛЬНЫХ 8-разрядных числа, то они требуют 32 бита для хранения. Если таких кодов много, то и битов для их хранения нужно много.
Однако, если набор верных кодов доступа известен заранее (перед составлением алгоритма декодирования), то теоретически можно попытаться использовать это знание, чтобы упростить алгоритм декодирования (но только для этих известных заранее кодов). Но это в общем случае весьма нетривиальная задача, наверное. Есть над чем подумать...
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 16:52
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 19:49) *
Если я правильно понял условия задачи, то это невозможно. Ведь если верный код - это 4 ПРОИЗВОЛЬНЫХ 8-разрядных числа, то они требуют 32 бита для хранения. Если таких кодов много, то и битов для их хранения нужно много.
Однако, если набор верных кодов доступа известен заранее (перед составлением алгоритма декодирования), то теоретически можно попытаться использовать это знание, чтобы упростить алгоритм декодирования (но только для этих известных заранее кодов). Но это в общем случае весьма нетривиальная задача, наверное. Есть над чем подумать...


Коды известны заранее. Это именно так. Не тривиальная... потому и обратился к народу....
Если что-то прийдёт на ум - не сочтите за труд, известите. Мне пока не пришло, к сожалению.
Благодарен всем кто откликнулся.
С уважением Adv.

Сообщение отредактировал Adv - Aug 1 2009, 16:55
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 1 2009, 17:00
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Adv @ Aug 1 2009, 20:52) *
Коды известны заранее. Это именно так. Не тривиальная... потому и обратился к народу....

Тогда подскажите, какие арифметические операции доступны и над какими операндами. Вы упоминали +,-,*,/,XOR,табличное преобразование, некую маску (с неким ограничением по число битов?). Есть ли ограничение на число операций? Поскольку, похоже, недоступны ветвления (типа IF-THEN-ELSE), то нужны какие-то "нелинейные" операции типа побитового OR или AND. Табличные преобразования могут делать почти всё, но опять же, какие есть ограничения, связанные с ними?
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 1 2009, 17:40
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(scifi @ Aug 1 2009, 20:00) *
Тогда подскажите, какие арифметические операции доступны и над какими операндами. Вы упоминали +,-,*,/,XOR,табличное преобразование, некую маску (с неким ограничением по число битов?). Есть ли ограничение на число операций? Поскольку, похоже, недоступны ветвления (типа IF-THEN-ELSE), то нужны какие-то "нелинейные" операции типа побитового OR или AND. Табличные преобразования могут делать почти всё, но опять же, какие есть ограничения, связанные с ними?


Табличное преобразование - макс. ОБЩИЙ объём памяти для ВСЕХ преобразований (В СУММЕ) 64 кбайта. Арифметические - любые, над любым операндом. Сдвиг любой. В приципе не оговаривается число самих операций, но хотелось бы по-менее (аппаратура не резиновая, к сожалению). Для начала рассмотрим ЛЮБОЕ количество операций. IF-THEN-ELSE - нет. Побитовые логические - любые.
Go to the top of the page
 
+Quote Post
тау
сообщение Aug 2 2009, 05:54
Сообщение #16


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Цитата(Adv @ Aug 1 2009, 21:40) *
Табличное преобразование - макс. ОБЩИЙ объём памяти для ВСЕХ преобразований (В СУММЕ) 64 кбайта.

Цитата(Adv @ Aug 2 2009, 01:13) *
АДРЕСА МОГУТ БЫТЬ ЛЮБЫЕ. Их в 14 разрядов не впихнёшь. Подчёркиваю - ЛЮБЫЕ, и в ЛЮБОМ СОЧЕТАНИИ и 12000 - 18000 адресов. А было бы здорово , если это было возможно....


Теперь ясно , что Вы не можете влиять на генерацию входных ключей, для Вас они случайные 32-битные числа.
Но есть возможность использовать таблицу 64кБ. Это тоже самое что в таблицу вы можете запихнуть 16к 32 битных величин . Ну так и запишите в нее все допустимые ключи. При приеме сравниваете поступившую комбинацию с содержимым всей заполненной таблицы. При совпадении с одним из табличных - на выход 1-цу.
Go to the top of the page
 
+Quote Post
Adv
сообщение Aug 2 2009, 09:11
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 6-08-05
Из: Винница
Пользователь №: 7 407



Цитата(тау @ Aug 2 2009, 08:54) *
Теперь ясно , что Вы не можете влиять на генерацию входных ключей, для Вас они случайные 32-битные числа.
Но есть возможность использовать таблицу 64кБ. Это тоже самое что в таблицу вы можете запихнуть 16к 32 битных величин . Ну так и запишите в нее все допустимые ключи. При приеме сравниваете поступившую комбинацию с содержимым всей заполненной таблицы. При совпадении с одним из табличных - на выход 1-цу.


Спасибо. Вы предложили неплохое решение. Но у него есть (как и у всего) недостаток - как и любой поиск по маске (а это ВСЁ ТОТЖЕ ПОИСК ПО МАСКЕ) требует ресурсов, причём правильной конфигурации (ОЗУ 16К х 32 бит). Аппаратно у меня их НЕТ. Из-за этого я вылез с темой-то!! 64К - это память с разрядностью 1 бит . Она может быть переконфигурирована в любую из списка: 8кх8, 4Кх16, 2Кх32(36) если использовать и бит паритета. это блоки М9К Алтеры. А задача поставлена была вообще классно - получить МАКСИМАЛЬНО ВОЗМОЖНОЕ количество ключей, это потом одумались хоть сократили... Послушав всех прихожу к выводу, что кроме ступенчатой дешифрации решенй для задачи нет.
Но всё равно - спасибо всем, кто откликнулся.

ЗЫ. Но здорово было бы узнать, так есть ли МАТЕМАТИЧЕСКОЕ решение для задачи, а не применение только комбинации схемотехнических?? Последние сильно ограничивает возможности поиска, из-за наложения ограничений на совместно используемые ключи (адреса). Надеюсь, для Вас, тау это тоже не безинтересно....

Сообщение отредактировал Adv - Aug 2 2009, 09:38
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Adv   Возможно ли?   Aug 1 2009, 13:09
|- - Огурцов   Цитата(Adv @ Aug 1 2009, 15:53) Или ещё п...   Aug 2 2009, 05:40
- - stells   Цитата(Adv @ Aug 1 2009, 17:09) какие мат...   Aug 1 2009, 14:24
- - scifi   Как насчёт такого варианта: Берём введённый код 0x...   Aug 1 2009, 17:51
|- - Adv   Цитата(scifi @ Aug 1 2009, 20:51) Как нас...   Aug 1 2009, 18:13
|- - scifi   Цитата(Adv @ Aug 1 2009, 22:13) Нет. Все ...   Aug 1 2009, 18:31
|- - Adv   Цитата(scifi @ Aug 1 2009, 21:31) Я опять...   Aug 1 2009, 18:41
- - scifi   Если за это время мы не нашли решение, то дальше п...   Aug 1 2009, 18:49
|- - Adv   Цитата(scifi @ Aug 1 2009, 21:49) Если за...   Aug 1 2009, 18:58
- - тау   Сорри за идиотизм с моей стороны, но почему бы не ...   Aug 1 2009, 19:07
|- - Adv   Цитата(тау @ Aug 1 2009, 22:07) Сорри за ...   Aug 1 2009, 19:12
- - тау   Что далее? проще не бывает же. Сообщаете на старте...   Aug 1 2009, 19:40
|- - Adv   Цитата(тау @ Aug 1 2009, 22:40) Что далее...   Aug 1 2009, 19:48
|- - тау   Цитата(Adv @ Aug 1 2009, 23:48) Простите,...   Aug 1 2009, 20:25
||- - Adv   Цитата(тау @ Aug 1 2009, 23:25) предполож...   Aug 1 2009, 20:51
|- - asdf   Цитата(Adv @ Aug 1 2009, 23:48) Простите,...   Aug 1 2009, 20:32
- - тау   Что значит " во всех 4-х числах этот код один...   Aug 1 2009, 20:54
|- - Adv   Цитата(тау @ Aug 1 2009, 23:54) Что значи...   Aug 1 2009, 21:13
- - тау   Как уже правильно Вам сказал scifi, решение задач...   Aug 3 2009, 19:17
- - lead_seller   Делите свой 4-х байтный код на две части по 2 байт...   Aug 27 2009, 14:19


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 12:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01629 секунд с 7
ELECTRONIX ©2004-2016