Найти - Пользователи
Полная версия: Дана последовательность вещественных чисел, оканчивающаяся числом 10000
Начало » Центр помощи » Дана последовательность вещественных чисел, оканчивающаяся числом 10000
1 2
valeriya0496
Дана последовательность вещественных чисел, оканчивающаяся числом 10000. Количество чисел в последовательности не меньше двух. Определить, является ли последовательность упорядоченной по возрастанию. В случае отрицательного ответа определить порядковый номер первого числа, нарушающего такую упорядоченность.
MindHatter
Это должно помочь.

>>> a = [0,1,2,3,5,6,4,7]
>>> a == sorted(a)
False
>>> a
[0, 1, 2, 3, 5, 6, 4, 7]
>>> if a != sorted(a):
	for i in zip(a, sorted(a)):
		if i[0] != i[1]:
			print(a.index(i[0]))
			break		
4
Budulianin
MindHatter

Зря ты так извращаешься.
Тут просто нужно сравнивать два соседних числа и если условие нарушается, делать return
MindHatter
Поподробнее можно? Что за соседние числа? И чем их сравнение будет отличаться от преложенного варианта?
Budulianin
MindHatter
Что за соседние числа?
[1, 2, 3, 4, 5, 6, 7, 8, 9]
1<2
2<3

MindHatter
И чем их сравнение будет отличаться от преложенного варианта?
Ты бессмысленно сортируешь список несколько раз. Используешь два списка, вместо одного исходного. Делаешь print break вместо return.
Singularity
Поддерживаю Budulianin
def is_sorted(arr):
    for i in range(1,len(arr)):
        if arr[i-1] > arr[i]:
            return arr[i]
    return True
Dark95
Вы не могли бы, пожалуйста, полностью написать программу или показать, в чем моя ошибка
import random
a=range(10001)
n=int(input('Vvedite kol-vo chlenov'))
for i in range(1, n+1):
    a[i]= random.randrange(10000)
print(a[i])
i=1
s=1
while s!= 0:
    if (a[i + 1]) < (a[i]):
        print('Первое число,нарушающее упорядоченность : ', a[i + 1])
    s=0
    i= i + 1
    if i == n:
        break
    if s != 0:
        print('Последовательность упорядочена')
py.user.next
>>> def f(seq):
...     assert len(seq) > 1
...     i = 1
...     while True:
...         if seq[i - 1] > seq[i]:
...             return i + 1
...         if seq[i] == 10000:
...             break
...         i += 1
...     return 0
... 
>>> f([1, 10000])
0
>>> f([1, 2, 10000])
0
>>> f([1, 2, 3, 10000])
0
>>> f([1, 2, 3, 1, 10000])
4
>>> f([1, 2, 3, 3, 10000])
0
>>> f([1, 2, 3, 10001, 10000])
5
>>>
valeriya0496
а что делать,если они все не работают?может кто-нибудь написать полную программу,пожалуйста?
Budulianin
valeriya0496
а что делать,если они все не работают?может кто-нибудь написать полную программу,пожалуйста?

Что именно не работает?
Это полные программы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB