Я думаю, что решение для этого довольно простое, но я об этом некоторое время думал и не мог придумать изящное решение.Как я могу по модулю, когда мои номера начинаются с 1, а не с нуля?
У меня есть ряд чисел, например. 1..10 = (1,2,3,4,5,6,7,8,9,10)
, который является круглым, то есть число после последнего снова является первым (next(10)=1
).
Для данного номера i>0
в диапазоне, я бы хотел рассчитать следующий m
-й, и предыдущий m
-й номер. например next(5,1)=6
next(10,1)=1
next(10,2)=2
prev(5,2)=3
prev(1,1)=10
prev(1,2)=9
.
Для next
я могу просто взять (i+m)%n
, где n
длина диапазона (n=10
в данном примере). Но для prev
я не мог найти элегантное решение.
Это не относится к Perl в любом случае. Я бы предложил искать лучший тег. –
Тэги изменены с 'perl' на' modulo' на основе фактического содержимого вопроса. –
Спасибо, ребята. –