|
Одним делением вычислить два, можно ли? |
|
|
|
May 19 2011, 16:30
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Добрый день. Возникла задача, под которую у меня мозг не заточен, если не ошибаюсь, из математики конечных полей. Господа математики, подскажите, можно ли вычислить одним делением X и Y:
X=(a mod k1) mod k2 Y = (a mod k1)/k2
k1, k2 - константы, 16 бит. а- переменная, 32 бит.
Нужна аппаратная реализация этого, если в лоб - два делителя подряд - задержка большая, скорость снижается, да и ресурсов делитель немало ест. Нужна реализация с одним делителем + умножители и сумматоры/вычитатели если нужно.
Спасибо!
|
|
|
|
|
 |
Ответов
|
May 26 2011, 06:46
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Если k1 не очень большое число (а k2 должно быть еще меньше, естественно), то второе деление можно заменить поиском по таблице, общим размером k1: [0, 1, 2... k2-1], [0, 1, 2... k2-1], [0, 1, 2... k2-1], ...0, 1, ... (на каком-то числе закончится) Тогда сначала нужно поделить на k1 и найти остаток, а потом по таблице по этому остатку-индексу найти остаток от деления на k2.
|
|
|
|
|
May 26 2011, 19:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(ViKo @ May 26 2011, 10:46)  Если k1 не очень большое число (а k2 должно быть еще меньше, естественно), то второе деление можно заменить поиском по таблице, общим размером k1: [0, 1, 2... k2-1], [0, 1, 2... k2-1], [0, 1, 2... k2-1], ...0, 1, ... (на каком-то числе закончится) Тогда сначала нужно поделить на k1 и найти остаток, а потом по таблице по этому остатку-индексу найти остаток от деления на k2. Не, таблица не вариант, памяти в обрез
|
|
|
|
|
May 28 2011, 04:11
|
Вечный студент
   
Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262

|
Цитата(ViKo @ May 27 2011, 22:45)  Видимо, тем, что придется умножить на 1/k, затем из результата вычесть целую часть, оставить дробную, затем дробную умножить на k. Так получится остаток от деления на k. Ну да, примерно так, но не совсем. Умножить на (65536 div k) (целая константа), выкинуть (просто игнорировать) 2 мл. байта – и частное готово. Для получения остатка нужно еще одно умножение и одно вычитание. И соответственно вместо второго деления тоже 2 умножения и одно вычитание. Все в целых числах. По-моему, этим должно не не_устраивать, а как раз устраивать  , ибо Цитата(alexPec @ May 19 2011, 19:30)  Нужна реализация с одним делителем + умножители и сумматоры/вычитатели если нужно. Цитата(alexPec @ May 20 2011, 18:38)  чтоб операция деления и (или) остатка от деления была одна, предпочтительнее вместо второй операции деления использовать несколько (может быть) умножений и сложений/вычитаний. Т.е вторая операция деления - это уже край. Конечно, из слов автора буквоед может сделать вывод, что непременно должно быть одно и только одно деление, но мы же не такие  Хотя и в этом случае – пожалуйста: одно деление «честное», а вместо второго – как я сказал
Сообщение отредактировал Diusha - May 28 2011, 04:18
|
|
|
|
Сообщений в этой теме
alexPec Одним делением вычислить два May 19 2011, 16:30 Сергей Борщ Или я чего-то не понимаю, или X и Y - это остаток ... May 19 2011, 22:04 Xenia Цитата(alexPec @ May 19 2011, 20:30) Добр... May 19 2011, 23:18 Волощенко Цитата(alexPec @ May 19 2011, 19:30) Нужн... May 20 2011, 05:16 Visk Цитата(Волощенко @ May 20 2011, 09:16) Де... May 20 2011, 09:02  alexPec Напишу то же самое от себя...
Поясню подробней x ... May 20 2011, 15:38 i-mir Не совсем понятно что у вас за проблема. Не уклады... May 23 2011, 19:44 ViKo Цитата(i-mir @ May 23 2011, 22:44) Н... May 24 2011, 06:42 i-mir Вопрос как обычно звучит так - чего хочет топикста... May 24 2011, 13:54 scifi Цитата(i-mir @ May 24 2011, 17:54) Я... May 24 2011, 14:20  alexPec Цитата(scifi @ May 24 2011, 18:20) Удивит... May 24 2011, 18:12 des00 никак, делайте два деления на одном блоке %) May 25 2011, 04:25 i-mir ЦитатаУдивительно толкование. И совсем неверное.
С... May 25 2011, 07:21 Diusha 1. Вот крутится такая мысля…
От деления a на k1 ну... May 25 2011, 11:19    singlskv Цитата(ViKo @ May 27 2011, 23:45) Видимо,... Jun 2 2011, 08:16     alexPec Цитата(singlskv @ Jun 2 2011, 12:16) А ес... Jun 2 2011, 20:47      singlskv Цитата(alexPec @ Jun 3 2011, 00:47) k2 = ... Jun 2 2011, 21:55 i-mir Вот интересен например сам факт задачи, где топикс... May 30 2011, 19:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|