Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.04.2021
Сообщений: 2

Определить число, меньше которого только самое наименьшее число в последовательности

09.04.2021, 11:26. Показов 2299. Ответов 17

Студворк — интернет-сервис помощи студентам
Дана последовательность чисел, не превышающих 100, заканчивающаяся нулем. Необходимо определить число, меньше которого только самое наименьшее число в последовательности.

Мой код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
a = int(input())
minimum = a
sec_min = a
while a != 0:
    a = int(input())
    if a == 0:
        break
    elif a < minimum:
        sec_min = minimum
        minimum = a
    elif a > minimum and a < sec_min:
        sec_min = a
print(sec_min)
Проваливается на 4 тесте в онлайн курсе (тест скрыт). Не могу найти свою ошибку, помогите.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2021, 11:26
Ответы с готовыми решениями:

Найти наименьшее n, чтобы в последовательности чисел 1+1/2; 1+1/3; ... 1+1/n последнее число было меньше А
Дано число a(1&lt;a&lt;=1.5). Найти такое наименьшее n, что в последовательности чисел 1+1/2; 1+1/3; ... 1+1/n последнее число будет меньше а. ...

Найти такое наименьшее n, что в последовательности чисел последнее число будет меньше а
Помогите решить! ПЛЗ!!! Дано число a(1&lt;a&lt;=1.5). Найти такое наименьшее n, что в последовательности чисел 1+1/2; 1+1/3; ... 1+1/n...

Найти такое наименьшее n что в данной последовательности чисел последнее число будет меньше а
дано число а (1&lt;а&lt;=1.5) найти такое наименьшее n что в последовательности чисел 1+1/2 , 1+1/3 ...1+1/n последнее число будет меньше...

17
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
09.04.2021, 12:03
Введи 1 2 3 4 5 0 и поймешь.

Добавлено через 7 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a=int(input())
 
while(True):
    b=int(input())
    if (b!=a):
        break
    
minimum=min(a,b)
sec_min=max(a,b)
 
while a != 0:
    a = int(input())
    if a == 0:
        break
    elif a < minimum:
        sec_min = minimum
        minimum = a
    elif a > minimum and a < sec_min:
        sec_min = a
print(sec_min)
2
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.04.2021, 12:06
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
a = int(input())
b = int(input())
if a < b:
    a, b = b, a
minimum = b
sec_min = a
while a != 0:
    if a < minimum:
        sec_min = minimum
        minimum = a
    elif a < sec_min:
        sec_min = a
    a = int(input())
print(sec_min)
Добавлено через 1 минуту
Catstail, я определил второй элемент в списке, нужно было в множестве
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
09.04.2021, 12:08
Gdez, да. У меня так и получится.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.04.2021, 12:09
Catstail, я это понял. Потому и написал.
Если задача с ЯЛ, то не факт, что они подразумевали "множество"
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
09.04.2021, 12:14
а вот другой способ:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
c=[0 for _ in range(100)]
while(True):
    i=int(input())
    if i==0:
        break
    c[i-1]+=1
k=0
for i in range(100):
    if c[i] != 0:
        if k==1:
            print(i+1)
            break
        k+=1
0
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
09.04.2021, 12:26
Дана последовательность чисел, не превышающих 100, заканчивающаяся нулем. Необходимо определить число, меньше которого только самое наименьшее число в последовательности.

Вопросы:
1. Ноль входит в последовательность? Если да - он и есть наименьшее число.. хотя в условии ничего не сказано про отрицательные числа...
2. Дана последовательность... т.е. ее не нужно запрашивать у пользователя? Она приходит извне?
3. Почему бы просто не отсортировать последовательность и не взять второй элемент?

Мое решение:
Python
1
2
3
4
5
6
7
8
9
numbers = []
 
while True:
    number = int(input())
    if number <= 100:
        numbers.append(number)
    if number == 0:
        break
print(sorted(numbers)[1])
Если последовательность приходит извне:
Python
1
print(sorted(numbers)[1])
Или я что-то не понял в условии?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
09.04.2021, 13:00
Так?
Python
1
print(__import__("heapq").nsmallest(2, {int(x) for x in iter(input, "0")})[-1])
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
09.04.2021, 13:05
Arsegg, россыпи изюма! Из булок...

Добавлено через 51 секунду
Цитата Сообщение от GorodetskiyKP Посмотреть сообщение
Или я что-то не понял в условии?
- сортировка (такая) - излишнее действие
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.04.2021, 13:11

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
россыпи изюма! Из булок
для них это сахар))


А какой ответ если такого числа нет?
1
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
09.04.2021, 13:52
Цитата Сообщение от Catstail Посмотреть сообщение
- сортировка (такая) - излишнее действие
Почему? Если я правильно понял условие, решение сортировкой вполне читаемое..
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
09.04.2021, 13:57
Python
1
2
3
4
5
6
a = []
while k := int(input()):
    a.append(k)
for i in range(a.count(min(a))):
    a.pop(a.index(min(a)))
print(min(a))
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
09.04.2021, 14:15

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
россыпи изюма! Из булок...
Блин, надо будет взять на вооружение данный образчик))



Добавлено через 2 минуты
Цитата Сообщение от GorodetskiyKP Посмотреть сообщение
Если я правильно понял условие, решение сортировкой вполне читаемое..
Сортировка, если она не цифровая (RadixSort), занимает O(N * log(N)), что дольше, чем, например, O(N).
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
09.04.2021, 14:23
Цитата Сообщение от GorodetskiyKP Посмотреть сообщение
решение сортировкой вполне читаемое..
- читаемое. Но найти два минимума в массиве существенно проще, чем установить в массиве полный порядок.

Цитата Сообщение от Arsegg Посмотреть сообщение
Сортировка, если она не цифровая
- имеется в виду поразрядная? Есть вариант лучше - сортировка подсчетом. Что, собственно, я и применил в посте #6 (см. выше)

Добавлено через 1 минуту
alilxxey, не понял этот код... Поясни, пожалуйста!
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
09.04.2021, 14:27
Цитата Сообщение от Catstail Посмотреть сообщение
имеется в виду поразрядная? Есть вариант лучше - сортировка подсчетом. Что, собственно, я и применил в посте #6 (см. выше)
Для данной задачи - любой способ будет иметь линейную сложность. Если задачу обобщить на поиск k-ого уникального минимума - асимптотики будут кардинально различаться, причем не в лучшую сторону.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
09.04.2021, 14:30
Arsegg, при k сравнимых с размером массива - да. При k гораздо меньших - нет. Я сравниваю с полной сортировкой
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
09.04.2021, 14:55
Цитата Сообщение от Catstail Посмотреть сообщение
не понял этот код... Поясни, пожалуйста!
хорошо, конечно.
Цитата Сообщение от alilxxey Посмотреть сообщение
Python
1
2
3
a = []
while k := int(input()):
    a.append(k)
тут все понятно, ввод массива
Цитата Сообщение от alilxxey Посмотреть сообщение
Python
1
2
for i in range(a.count(min(a))):
    a.pop(a.index(min(a)))
- тут я использовал эдакую "защиту" от того, что может быть несколько минимальных значений. Т.Е. min(a) при a = [1, 1, 2, 3, 4] выводит 1. при этом a.count(min(a)) = 2 (т. к. 2 единицы), и мы удаляем минимальный элемент с помощью
Цитата Сообщение от alilxxey Посмотреть сообщение
Python
1
a.pop(a.index(min(a)))
a.count(min(a)) раз - удаляем не один(а может и один), а ВСЕ экземпляры минимальных элементов. То есть a = [2, 3, 4] - потом выводим min(a) и получаем ответ. Это решение можно было реализовать и через множество, дабы не морочить голову for и pop. Или просто сделать как Arsegg
1
0 / 0 / 0
Регистрация: 09.04.2021
Сообщений: 2
11.04.2021, 10:11  [ТС]
Спасибо за ответ, буду думать почему в последовательности, которую вы написали, моя программа выдает единичку вместо двойки.

Добавлено через 33 минуты
Программа онлайн курса по python приняла вот такой ответ:

a = int(input())
mini = a
sec_min = 100
while a != 0:
a = int(input())
if a == 0:
break
elif a < mini:
sec_min = mini
mini = a
elif a > mini and a < sec_min:
sec_min = a
print(sec_min)

Изменено по сравнению с моим прошлым кодом то, что второй минимум я задал числом 100. Когда он был равен первому введенному числу, происходила "ошибка" из за единички вначале. Ввода.
Все ответы в рамках темы были очень полезными. К сожалению программа курса приняла только тот что я написал выше, обусловлено условиями ввода информации и рамками онлайн курса.
Именно ваша подсказка с последовательностью помогла получить ответ, который приняла программа, благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2021, 10:11
Помогаю со студенческими работами здесь

Найти такое наименьшее n, что в последовательности чисел 1+1/n последнее число будет меньше заданного A
Дано число a(1&lt;a&lt;1,5). Найти такое наименьшее n, что в последовательности чисел 1+1/2, 1+1/3,...,1+1/n последнее число будет меньше a.

Определить наименьшее положительное число в последовательности
(СИ)Вводится последовательность ненулевых чисел, 0 — конец последовательности. Определить наименьшее положительное число.

Найти натуральное наименьшее число n, факториал которого превышает число 4000
Написать программу для решения следующей задачи,используя,по крайней мере, два вида циклов. Найти натуральное наименьшее число n, факториал...

Найти наименьшее число, в результате обработки которого автомат выдаст заданное число
Задача такая Андрей готовился к ЕГЭ по информатике и встретил в демо-версии ЕГЭ 2015 года такую задачу: Автомат получает на вход...

Найти наименьшее целое положительное число K, квадрат которого превосходит заданное число N
Пожалуйста помогите. Использовать Repeat. С клавиатуры вводится натуральное число п и вещественное а. Дано целое число N (&gt; 0). Найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru