2016-12-22 3 views
0

У меня есть массив, имеющий шесть элементов, которые имеют циклическую природу, то есть соседи первого элемента являются вторым элементом и 6-м элементом, и аналогичным образом соседи 6-го элемента 5-й и 1-й элементы. Теперь один простой способ получить доступ к ним является:Поиск соседей элементов циклического массива без использования мода

array:item array ((a + 5) mod 6) and array:item array ((a + 1) mod 6) 

где «а» элемент массива мы заинтересованы в Учитывая тот факт, что «mod'operator вычислительно дорогостоящими, как можно реализовать циклический характер. массив без использования оператора «mod»?

ответ

0
  1. Преждевременная оптимизация? Сомневаюсь, что mod будет вашей шеей для бутылок.
  2. Просто сделайте таблицу (используя расширение table), сопоставляя каждый элемент со своими соседями.
+0

Thanks @Alan. У меня была [эта проблема] (http://stackoverflow.com/questions/41276117/accessing-patch-through-coordinates-stored-in-a-list) с использованием таблиц. Теперь же, на который был дан ответ, я бы дал ему шанс. Раньше я использовал два списка, как в [этом другом вопросе] (http://stackoverflow.com/questions/41276117/accessing-patch-through-coordinates-stored-in-a-list). Можете ли вы подробнее рассказать о преждевременной оптимизации или дать некоторые ссылки? Заранее спасибо! –

+0

«Программисты тратят огромное количество времени на размышления о скорости некритических частей своих программ или заботятся о них, и эти попытки эффективности действительно оказывают сильное негативное влияние при отладке и обслуживании. Мы должны забыть о небольшой эффективности, скажем, около 97% времени: преждевременная оптимизация - корень всего зла, но мы не должны упускать наши возможности в этих критических 3% ». Кнут, «Структурированное программирование с заявлениями Goto». Вычислительные исследования 6: 4 (декабрь 1974 г.), стр. 261-301, § 1. – Alan

Смежные вопросы