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

 
 
> "Пятничная" задачка, правда во вторник :)
singlskv
сообщение Mar 31 2009, 17:24
Сообщение #1


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Есть 3 целых числа A,B,C разрядность не принципиальна, но пусть будет байт или uint32.
Допустим что это значения считанные из порта(PIO) в разные моменты времени(типа фильтрация по 3 значениям).
Нужно сформировать из этих 3 чисел 1 число так что бы если в >=2 соответствующих битах 1 то выход 1 иначе 0
те:
Ai = 0 1 1 0
Bi = 0 1 0 1
Ci = 1 0 1 0
-----------------
Ri = 0 1 1 0 <- результат

итд...

нужен самый простой алгоритм...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zzzzzzzz
сообщение Mar 31 2009, 19:35
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 724
Регистрация: 1-05-05
Из: Нью Крыжопыль
Пользователь №: 4 641



Простой алгоритм:
Переписываем числа в другие, состоящие из разрядов исходных, например, первое число : А0, В0, С0, ....
Считаем количество единиц в новых числах. Если больше или равно 2х - то пишем в соответствующий бит результата 1, в противном случае 0.
biggrin.gif biggrin.gif biggrin.gif
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 31 2009, 19:48
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zzzzzzzz @ Mar 31 2009, 23:35) *
Простой алгоритм:
biggrin.gif biggrin.gif biggrin.gif
Простой алгоритм ~= экономный алгоритм
Про три числа xemul ответил, интересен вопрос про 5, 7 итд... чисел.
Go to the top of the page
 
+Quote Post
zzzzzzzz
сообщение Mar 31 2009, 19:55
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 724
Регистрация: 1-05-05
Из: Нью Крыжопыль
Пользователь №: 4 641



Цитата(singlskv @ Mar 31 2009, 23:48) *
Простой алгоритм ~= экономный алгоритм
Про три числа xemul ответил, интересен вопрос про 5, 7 итд... чисел.
Алгоритм не меняется. Считайте до 5 или 7 - какая разница?
Мажоритарная функция для большого количества длинна, а считать, например, сдвигом числа - довольно просто. Дергаешь флагом и все дела...
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 31 2009, 20:01
Сообщение #5


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zzzzzzzz @ Mar 31 2009, 23:55) *
Алгоритм не меняется. Считайте до 5 или 7 - какая разница?
Мажоритарная функция для большого количества длинна, а считать, например, сдвигом числа - довольно просто. Дергаешь флагом и все дела...
дык покажите хотя бы для 3 чисел сдвигом
будет лучше чем: R = (A&B) | ((A|cool.gif&C);
?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- singlskv   "Пятничная" задачка   Mar 31 2009, 17:24
- - xemul   Обычное мажорирование КодR = (A&B) | ...   Mar 31 2009, 17:38
|- - singlskv   Цитата(xemul @ Mar 31 2009, 21:38) Обычно...   Mar 31 2009, 18:04
|- - singlskv   Цитата(xemul @ Mar 31 2009, 21:38) дальше...   Mar 31 2009, 19:24
|- - zzzzzzzz   Цитата(singlskv @ Apr 1 2009, 00:01) дык ...   Mar 31 2009, 20:30
|- - singlskv   Цитата(zzzzzzzz @ Apr 1 2009, 00:30) Лень...   Mar 31 2009, 20:52
- - SM   А чё, собственно, экономим-то? Время? Память данны...   Mar 31 2009, 20:46
- - _Pasha   1.Накладываем маску из 0b001001001... на каждый оп...   Mar 31 2009, 21:51
|- - singlskv   Цитата(_Pasha @ Apr 1 2009, 01:51) 1.Накл...   Mar 31 2009, 22:13
- - xemul   Если правильно посчитал, то минимальная дизъюнктив...   Mar 31 2009, 22:55
- - 777777   Цитата(singlskv @ Mar 31 2009, 21:24) Ест...   Apr 1 2009, 04:25
|- - xemul   Цитата(777777 @ Apr 1 2009, 08:25) Если н...   Apr 1 2009, 05:18
- - _Pasha   Чисто по-эстонски подумал, спустя год: а почему N*...   Apr 1 2009, 12:13
|- - singlskv   Цитата(_Pasha @ Apr 1 2009, 16:13) 1.Бере...   Apr 1 2009, 12:58
- - singlskv   для 3 чисел есть такое решение: КодR=((...   Apr 1 2009, 18:09
- - xemul   А я про баню... Кодushort VCntA, VCntB; void vcou...   Apr 1 2009, 21:11
- - SM   Если экономим все же время, то переделать схему та...   Apr 1 2009, 22:46


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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 20:13
Рейтинг@Mail.ru


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