2016-02-23 3 views
-1

Я просматриваю некоторые старые курсовые работы и хотел попробовать реализовать алгоритмы в коде. Одна из проблем гласит:Реализация алгоритма в Python

Дан массив А с максимальными М и минимальными м, показывают, что существует пара чисел A[i], A[i+1] так что |A[i] - A[i-1]| <= (M-m)/(n-1)

Должен ли я просто перебрать вход ищу для пар, которые соответствуют это условие? Может ли кто-нибудь указать мне в правильном направлении с некоторым псевдокодом?

+1

«Показать» не похоже, что они хотят, чтобы вы написали код. Похоже, они хотят, чтобы вы доказали, что такая пара должна существовать, учитывая условия в постановке задачи. – user2357112

+1

Непонятно, что такое 'M, m', я предполагаю, что' n' - количество элементов? Где вы используете 'A [i + 1]'? – amit

+0

@amit Я забыл упомянуть, и я сделаю это редактирование в одно мгновение, но в массиве A, M - максимум, а m - минимум. n - количество элементов, да. –

ответ

0

Я не думаю, что есть другой способ, да.

Чтобы перебрать список в парным образом, вы могли бы найти эту функцию полезной:

def pairwise(iterable): 
    a = iter(iterable) 
    b = iter(iterable) 
    next(b) 
    yield from zip(a,b) 
+0

Синтаксис 'yield from' - это Python 3-exclusive; если OP использует Python 2, они будут хотеть 'for bar в zip (a, b): yield bar' – Daniel

1

Я думаю, вы имеете в виду отсортированный массив?

В противном случае [1, 3, 5, 2, 7] не соответствует теореме.

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