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

 
 
> Поиск формулы для нахождения индекса элемента массива, Нужна помощь математика)
Sprite
сообщение Apr 4 2018, 14:26
Сообщение #1


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

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Доброго всем времени суток!

Есть таблица элементов (скажем частот), в котором каждое последующее значение отличается от предыдущего на 1%, например:
Код
10000
10100
10201
10303,01
10406,0401
10510,1005
10615,20151
10721,35352
и т.д.


и есть текущее значение частоты, например 10354.

Нужно частотам (как бы это по русски выразиться wacko.gif ) присвоить "индексы", например: если текущее значение лежит в диапазоне от 10000 до 10099 - то индекс = 0, при текущем значении в диапазоне от 10100 до 10200 - индекс = 1, при значении = 10477 индекс = 4 и т.д.
Самое тривиальное что приходит в голову - это проход по всей таблице и банальное сравнение, но этот вариант не подходит - слишком много времени тратится. Можно ли нахождение индекса представить в виде формулы?

Прошу прощения если вопрос не в тему и не по адресу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
twix
сообщение Apr 4 2018, 14:49
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174



Внимание вопрос, простое сравнение значит долго будет вычисляться, а логарифм при помощи рядов и деление быстро.
Автору полагаю лучше использовать деление и вычитание. Самая дорогая операция деление на 100.
10723 - 10000 = 723 /100 = 7
Если в микроконтроллере здесь быстрая процедура деления на 10 http://forum.easyelectronics.ru/viewtopic....f=4&t=13470

Сообщение отредактировал twix - Apr 4 2018, 14:52
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 4 2018, 15:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(twix @ Apr 4 2018, 20:49) *
Автору полагаю лучше использовать деление и вычитание. Самая дорогая операция деление на 100.10723 - 10000 = 723 /100 = 7

это будет работать если только в таблице меньше 15 частот, дальше будут ошибки.
вычисление логарифма не такое и медленное, несколько десятков тактов.
Go to the top of the page
 
+Quote Post
Sprite
сообщение Apr 4 2018, 15:29
Сообщение #4


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

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Цитата(_pv @ Apr 4 2018, 22:15) *
это будет работать если только в таблице меньше 15 частот, дальше будут ошибки.
вычисление логарифма не такое и медленное, несколько десятков тактов.

Вы правы) Поторопился я немного с выводом.
Go to the top of the page
 
+Quote Post



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

 


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


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