Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 12, 2021 11:52:22

alaarang
Зарегистрирован: 2021-02-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Здравствуйте! В егэ по математике попалась такая задача: “В натуральном числе каждая цифра, кроме первой и последней, меньше среднего арифметического соседних с ней цифр. Приведите пример такого четырехзначного числа. Найдите наибольшее такое число.” Захотелось решить ее с помощью программирования. С четырехзначным числом получилось так:

a =
for i in range (1000,10000):
a.append(i)
for element in a:
a = int(str(element))
b = int(str(element))
c = int(str(element))
d = int(str(element))
m = (a + c)/2
n = (b + d)/2
if b < m and c < n:
print(a,b,c,d)

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

Офлайн

#2 Фев. 12, 2021 16:15:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10005
Репутация: +  857  -
Профиль   Отправить e-mail  

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

alaarang
Интересует вторая часть задачи с поиском наибольшего числа.
Надо их не выводить, а добавлять в список (как кортежи цифр или как числа). А уже полученный список можно как выводить, так и искать в нём максимум.

И это, с числом как со строкой работать не принято. Для выделения цифр из числа нужно использовать операцию деления и операцию деления с остатком. Это связано с тем, что строковые операции медленнее, чем числовые, так как на строку требуется больше памяти, чем на число (строка - это массив чисел, тогда как число - это только одно число (в короткой арифметике)).

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



Отредактировано py.user.next (Фев. 12, 2021 16:15:54)

Офлайн

#3 Фев. 13, 2021 11:40:29

alaarang
Зарегистрирован: 2021-02-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

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


py.user.next
Спасибо, это очень полезно для меня!
Проблема в том, что необходимо найти максимальное число не в пределах конкретно четырехзначных чисел, а вообще во всех пределах… Значит, в нем может быть сколько угодно знаков. Не представляю, как можно с наименьшими затратами организовать это с помощью Python'a.

Офлайн

#4 Фев. 13, 2021 15:14:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10005
Репутация: +  857  -
Профиль   Отправить e-mail  

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

alaarang
Проблема в том, что необходимо найти максимальное число не в пределах конкретно четырехзначных чисел, а вообще во всех пределах… Значит, в нем может быть сколько угодно знаков.
В каких “во всех пределах”? С чего ты взял, что пределы есть? В натуральном числе может быть бесконечно много цифр. Если ты возмёшь число, в котором миллиард цифр (миллиардозначное число), то его можно умножить на десять и получить число, в котором миллиард одна цифра. Это можно повторять бесконечное число раз.

Программу же ты можешь написать, которая принимает количество цифр в числе и потом среди всех чисел с таким количеством цифр ищет подходящие числа по заданному критерию, а потом среди них находит максимальное число из отобранных. Можно это делать и одновременно. Для каждого обнаруженного числа, подходящего под критерий отбора, можно выполнять сравнение с предыдущим найденным числом, подходящим под критерий отбора. И если новое число больше старого числа, то заменять старое число на новое и следующее сравнение со следующим найденным числом проводить уже с ним.



Отредактировано py.user.next (Фев. 13, 2021 15:15:23)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version