Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 15, 2017 14:08:50

Andrei
Зарегистрирован: 2017-01-15
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

Здравствуйте! Недавно начал изучать Python. Если быть точнее это мой первый язык программирования.
Прошу помочь с решением задачи:

Задан список из целых чисел. Определить количество участков списка, на котором
элементы монотонно возрастают (каждое следующее число больше предыдущего).

Заранее спасибо за помощь!

Офлайн

#2 Янв. 15, 2017 15:33:12

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

Ваши попытки есть? Выкладывайте…

Офлайн

#3 Янв. 15, 2017 16:36:24

Andrei
Зарегистрирован: 2017-01-15
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

Ну если я правильно понимаю суть задачи, то нужно сравнивать два идущим друг за другом элемента списка. Монотонность возрастания это не меньше трех элементов. Вот примерно такие наработки:

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:

Офлайн

#4 Янв. 15, 2017 17:03:01

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

Andrei
 a=spisok
b=spisok
if b>a:
Сравниваете списки, а ход мыслей правильный
Andrei
нужно сравнивать два идущим друг за другом элемента списка

Офлайн

#5 Янв. 15, 2017 17:28:21

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

не лучший пример, но с чего то можно начать:

 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]))

Офлайн

#6 Янв. 15, 2017 20:34:27

Andrei
Зарегистрирован: 2017-01-15
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

Почему то не получается вставить квадратные скобки в сообщении.
Извиняюсь, за то что не по теме

Офлайн

#7 Янв. 15, 2017 20:41:33

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

оборачивайте код в теги и будет Вам счастье

Офлайн

#8 Янв. 15, 2017 21:11:34

Andrei
Зарегистрирован: 2017-01-15
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

 a=spisok[j]
b=spisok[j+1]

спасибо!

Офлайн

#9 Янв. 15, 2017 21:45:17

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

 if count>=2 and b<a:
в теле нужно добавить к rez 1 и обнулить count

Офлайн

#10 Янв. 17, 2017 21:08:06

Andrei
Зарегистрирован: 2017-01-15
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по определению кол-ва участков в списке

Всем спасибо за помощь! Задачу решил вот так:

 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version