Задача количество элементов равных максимуму python решение

Количество элементов, равных максимуму

Всем привет, в этой задаче у меня проблема с одним из вариантом который в спойлере. Почему то программа в этом варианте определяет максимальное число не доходя до конца. То есть он сперва выбирает 5 и пишет это в счётчик а когда доходит до 7 то переписывает максимум к 7 и считает дальше. В чем проблема? Почему он сразу не определяет максимум как 9 ?

Условие: Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности равны ее наибольшему элементу.

max = 0 count = 1 while True: n = int(input()) if n == 0: break if max  n: max = n elif max == n: count += 1 print(count)

Определите количество чисел, равных максимуму последовательности
С клавиатуры вводится ряд чисел через запятую. Определите количество чисел, равных максимуму.

Определите количество чисел, равных максимуму последовательности
С клавиатуры вводится ряд чисел (больше нуля) через запятую в виде строки. Определите количество.

Количество элементов, не равных максимальному
Количество элементов, не равных максимальному На вход вашей программе подается последовательность.

Вычислить количество элементов, равных нулю
Я новичок и не знаю как делать! В одномерном массиве, состоящем из n вещественных элементов.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
In [1]: def solution(): . result = 0 . maximum = None . while n := int(input()): . if maximum == n: . result += 1 . if maximum is None or maximum  n: . maximum = n . result = 1 . print(result) . In [2]: solution() 5 3 3 5 7 3 1 7 4 7 7 7 2 9 1 7 5 9 8 8 8 8 0 2

Определите количество элементов массива, равных числу N
1.Дан массив Х, состоящие из 100 случайных чисел, каждое из которых лежит в пределах от 3 до 13. С.

Количество пар элементов равных друг другу в массиве
Посчитайте количество пар элементов равных друг другу в массиве. Любые два элемента равные друг.

Определить количество элементов в массиве равных заданному числу B
Задан одномерный массив из 17 целых чисел. Определить количество элементов в массиве равных.

Напишите программу, которая находит в массиве количество элементов, равных максимальному
Напишите программу, которая находит в массиве количество элементов, равных максимальному. .

Напишите программу, которая находит в массиве количество элементов, равных заданному значению X
Напишите программу, которая находит в массиве количество элементов, равных заданному значению X . .

Определите количество элементов данного одномерного массива, равных последнему отрицательному элементу массива
Определите количество элементов данного одномерного массива, равных последнему отрицательному.

Количество элементов равных максимуму
Последовательность состоит из натуральных чисел и завершается числом 0. Всего вводится не более.

Источник

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Задача «Количество элементов, равных максимуму»

#1 Ноя. 5, 2020 08:41:31

Задача «Количество элементов, равных максимуму»

Доброго времени суток
В качестве практики решаю задачки на питонтьютор, и попалась следующая:
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности равны ее наибольшему элементу.

Для решения данной задачи написал код, он работает, но что-то мне подсказывает, что сделал все не через то место, и он должен быть существенно короче, если подскажете, в чем я ошибся, то буду премного благодарен.

n = int(input()) x = 0 #maximum y = 1 #schet while n != 0: if xn: x=n if yn: y=1 #obnulyaet schet elif n == x and not x>n: y+=1 n = int(input()) print(y) 

Отредактировано Sanya9652 (Ноя. 5, 2020 08:42:59)

#2 Ноя. 5, 2020 12:25:53

Задача «Количество элементов, равных максимуму»

Sanya9652
но что-то мне подсказывает, что сделал все не через то место, и он должен быть существенно короче

>>> def f(): . n = int(input()) . x = 0 #maximum . y = 1 #schet . while n != 0: . if xn: . x=n . if yn: . y=1 #obnulyaet schet . elif n == x and not x>n: . y+=1 . n = int(input()) . . print(y) . >>> f() 1 1 1 2 2 0 4 >>> 

Отредактировано py.user.next (Ноя. 5, 2020 12:26:10)

#3 Ноя. 5, 2020 17:43:35

Задача «Количество элементов, равных максимуму»

А слабо, собрать входные данные в список, отсортировать его реверсивно и, в цикле, посчитать сколько элементов равны певому элементу списка?

#4 Ноя. 5, 2020 23:33:41

Задача «Количество элементов, равных максимуму»

Rafik
А слабо, собрать входные данные в список, отсортировать его реверсивно и, в цикле, посчитать сколько элементов равны певому элементу списка?

Сделай, конечно, так, чтобы чисто лучше питон узнать. Но это алгоритмически неправильно. Во-первых, данные нужно стараться обрабатывать так, будто они поступают бесконечно (это могут быть датчики, огромные массивы данных и тому подобное), поэтому нужно стараться не собирать данные никуда, а обрабатывать их на лету, иначе не хватит памяти и время выполнения будет удлинняться. Во-вторых, ты предложил отсортировать все данные, хотя в них может быть, например, миллиард единиц и двоек и одно число сто. Зачем сортировать этот миллиард элементов? Достаточно число сто получить через линейную функцию max(), а потом считать его количество такой же линейной функцией. При этом миллиард единиц и двоек остаются нетронутыми на своих местах и, соответственно, на них не тратится время на сравнения и перемещения.

У него же алгоритм верный — обработка идёт на лету, — но он его не смог точно реализовать и написал код с ошибкой. Единственное что, он не должен читать из входного потока, а должен брать элементы из итератора, а итератор уже прикрепляется к входному потоку ввода. Так итератор можно прикреплять не только к входному потоку ввода, но и к сетевому сокету, к файлу, к любому генератору данных.

Отредактировано py.user.next (Ноя. 5, 2020 23:35:03)

Источник

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Задача «Количество элементов, равных максимуму»

#1 Ноя. 5, 2020 08:41:31

Задача «Количество элементов, равных максимуму»

Доброго времени суток
В качестве практики решаю задачки на питонтьютор, и попалась следующая:
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности равны ее наибольшему элементу.

Для решения данной задачи написал код, он работает, но что-то мне подсказывает, что сделал все не через то место, и он должен быть существенно короче, если подскажете, в чем я ошибся, то буду премного благодарен.

n = int(input()) x = 0 #maximum y = 1 #schet while n != 0: if xn: x=n if yn: y=1 #obnulyaet schet elif n == x and not x>n: y+=1 n = int(input()) print(y) 

Отредактировано Sanya9652 (Ноя. 5, 2020 08:42:59)

#2 Ноя. 5, 2020 12:25:53

Задача «Количество элементов, равных максимуму»

Sanya9652
но что-то мне подсказывает, что сделал все не через то место, и он должен быть существенно короче

>>> def f(): . n = int(input()) . x = 0 #maximum . y = 1 #schet . while n != 0: . if xn: . x=n . if yn: . y=1 #obnulyaet schet . elif n == x and not x>n: . y+=1 . n = int(input()) . . print(y) . >>> f() 1 1 1 2 2 0 4 >>> 

Отредактировано py.user.next (Ноя. 5, 2020 12:26:10)

#3 Ноя. 5, 2020 17:43:35

Задача «Количество элементов, равных максимуму»

А слабо, собрать входные данные в список, отсортировать его реверсивно и, в цикле, посчитать сколько элементов равны певому элементу списка?

#4 Ноя. 5, 2020 23:33:41

Задача «Количество элементов, равных максимуму»

Rafik
А слабо, собрать входные данные в список, отсортировать его реверсивно и, в цикле, посчитать сколько элементов равны певому элементу списка?

Сделай, конечно, так, чтобы чисто лучше питон узнать. Но это алгоритмически неправильно. Во-первых, данные нужно стараться обрабатывать так, будто они поступают бесконечно (это могут быть датчики, огромные массивы данных и тому подобное), поэтому нужно стараться не собирать данные никуда, а обрабатывать их на лету, иначе не хватит памяти и время выполнения будет удлинняться. Во-вторых, ты предложил отсортировать все данные, хотя в них может быть, например, миллиард единиц и двоек и одно число сто. Зачем сортировать этот миллиард элементов? Достаточно число сто получить через линейную функцию max(), а потом считать его количество такой же линейной функцией. При этом миллиард единиц и двоек остаются нетронутыми на своих местах и, соответственно, на них не тратится время на сравнения и перемещения.

У него же алгоритм верный — обработка идёт на лету, — но он его не смог точно реализовать и написал код с ошибкой. Единственное что, он не должен читать из входного потока, а должен брать элементы из итератора, а итератор уже прикрепляется к входному потоку ввода. Так итератор можно прикреплять не только к входному потоку ввода, но и к сетевому сокету, к файлу, к любому генератору данных.

Отредактировано py.user.next (Ноя. 5, 2020 23:35:03)

Источник

Сколько элементов последовательности равны ее наибольшему элементу

Цикл While
Последовательность состоит из натуральных чисел и завершается числом 0. Всего вводится не более 10000 чисел (не считая завершающего числа 0). Определите, сколько элементов этой последовательности равны ее наибольшему элементу.

Числа, следующие за числом 0, считывать не нужно.

Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит).

Определите, сколько элементов последовательности равны ее наибольшему элементу
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько.

Определить, сколько элементов последовательности равны ее наибольшему элементу
1)Последовательность состоит из натуральных чисел и кончается числом 0. Определить, сколько.

Подсчитать за один проход массива, сколько его элементов равны максимальному элементу
Подсчитайте за один проход массива, сколько его элементов равны максимальному элементу. Входные.

Определите, сколько элементов последовательности равны ее наибольшему элементу
Написать программу на С++, используя циклы for и/или while, можно использовать if.

_max = 0 all = [] while True: a = int(input()) if a == 0: break if _max  a: _max = a all.append(a) print(all.count(_max))

Эксперт Python

_max = cnt = 0 for a in iter(input, '0'): a = int(a) if _max  a: _max = a cnt = 1 elif _max == a: cnt += 1 print(cnt)

Возможно это сделать без списков?

Добавлено через 7 минут
С циклом while и без итераторов нужно(

Лучший ответ

Сообщение было отмечено abramovich как решение

Решение

num = int(input()) max_ = num coun = 1 while num != 0: num = int(input()) if num == max_: coun += 1 elif num > max_: max_ = num coun = 1 print(coun)

Определить, сколько элементов последовательности равны её наибольшему элементу
Последовательность состоит из натуральных чисел и завершается числом 0. Всего вводится не более.

While: определить, сколько элементов последовательности равны ее наибольшему элементу
Последовательность состоит из натуральных чисел и кончается числом 0. Определить, сколько.

Сколько элементов равны наибольшему элементу
Последовательность состоит из натуральных чисел и завершается числом 0. Всего вводится не более.

Определите, какое количество элементов последовательности равны её наибольшему элементу
Задача на рекурсию. Количество элементов, равных максимуму. Дана последовательность натуральных.

Определите, какое количество элементов последовательности равны её наибольшему элементу
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0.

Определите, какое количество элементов последовательности равны ее наибольшему элементу
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, какое.

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

Источник

Читайте также:  Стрельба без отдачи css v34
Оцените статью