Andrei
Янв. 15, 2017 14:08:50
Здравствуйте! Недавно начал изучать Python. Если быть точнее это мой первый язык программирования.
Прошу помочь с решением задачи:
Задан список из целых чисел. Определить количество участков списка, на котором
элементы монотонно возрастают (каждое следующее число больше предыдущего).
Заранее спасибо за помощь!
Romissevd
Янв. 15, 2017 15:33:12
Ваши попытки есть? Выкладывайте…
Andrei
Янв. 15, 2017 16:36:24
Ну если я правильно понимаю суть задачи, то нужно сравнивать два идущим друг за другом элемента списка. Монотонность возрастания это не меньше трех элементов. Вот примерно такие наработки:
spisok=
n=15
from random import randint
for i in range(n):
i=randint(0,20)
spisok.append(i)
print(spisok)
count=0
rez=0
for j in range(n-1):
a=spisok
b=spisok
if b>a:
count+=1 #вот начиная отсюда, запутался
if count>=2 and b<a:
Romissevd
Янв. 15, 2017 17:03:01
Andrei
a=spisok
b=spisok
if b>a:
Сравниваете списки, а ход мыслей правильный
Andrei
нужно сравнивать два идущим друг за другом элемента списка
ivn
Янв. 15, 2017 17:28:21
не лучший пример, но с чего то можно начать:
import random
list = [random.randint(0, 20) for el in range(20)]
print(list)
for i, el in enumerate(list):
if i == len(list) - 1:
break
if el > list[i+1]:
print(str(el) + ' больше чем следующее ' + str(list[i+1]))
else:
print(str(el) + ' не больше чем следующее ' + str(list[i+1]))
Andrei
Янв. 15, 2017 20:34:27
Почему то не получается вставить квадратные скобки в сообщении.
Извиняюсь, за то что не по теме
Romissevd
Янв. 15, 2017 20:41:33
оборачивайте код в теги и будет Вам счастье
Andrei
Янв. 15, 2017 21:11:34
a=spisok[j]
b=spisok[j+1]
спасибо!
Romissevd
Янв. 15, 2017 21:45:17
в теле нужно добавить к rez 1 и обнулить count
Andrei
Янв. 17, 2017 21:08:06
Всем спасибо за помощь! Задачу решил вот так:
import random
lst = [random.randint(0, 20) for el in range(40)]
print(lst)
result=0
count=0
for j in range(len(lst)-2):
if lst[j+2] > lst[j+1] > lst[j]:
count+=1
elif count>=1 and lst[j+1] > lst[j+2]:
result+=1
count=0
if lst[-1] > lst[-2] > lst[-3]:
result+=1
print(result)