
Помогите решить задачу python для школы, желательно с объяснением 1. Заполните массив случайными
числами в интервале [0,1000] и найдите количество элементов, старшая цифра которых равна 8. 2. Заполните массив случайными числами в интервале [0,1000] и выведите номера трёх различных минимальных элементов. Разрешается сделать только один проход по массиву.

Ответы на вопрос

Ответ:
Python
from random import randint
def getH(s):
while s>10:
s=s//10
return s
n=int(input('Введите размер массива: '))
a=[0]*n
b=0
for i in range(0, n-1):
a[i]=randint(0, 1000)
if getH(a[i])==8:
b+=1
print(a)
print('Элементов начинающихся с 8 =',b)
# задание 2
a=sorted(a)
i=1
b=1
print('3 минимальных элемента')
print(a[0])
while b<3 and b<n:
if a[i]!=a[i-1]:
print(a[i])
b+=1
i+=1
>>Введите размер массива: 45
[464, 937, 662, 266, 915, 535, 690, 663, 441, 791, 979, 831, 853, 92, 411, 429, 845, 949, 116, 178, 129, 434, 824, 802, 643, 41, 612, 654, 361, 503, 141, 290, 13, 401, 157, 55, 376, 960, 856, 869, 194, 913, 447, 639, 0]
Элементов начинающихся с 8 = 7
3 минимальных элемента
0
13
41



Конечно, давайте начнем с первой задачи.
Задача 1:
pythonimport random
# Создаем массив случайных чисел в интервале [0,1000]
array = [random.randint(0, 1000) for _ in range(100)]
# Находим количество элементов, старшая цифра которых равна 8
count_eights = len([num for num in array if str(num)[0] == '8'])
print("Количество элементов, старшая цифра которых равна 8:", count_eights)
В этом решении мы используем генератор списка (list comprehension) для создания массива случайных чисел в интервале от 0 до 1000. Затем мы используем генератор списка вновь, чтобы найти все элементы, у которых старшая цифра равна 8, и считаем их количество.
Задача 2:
pythonimport random
# Создаем массив случайных чисел в интервале [0,1000]
array = [random.randint(0, 1000) for _ in range(100)]
# Инициализируем списки для минимальных элементов и их индексов
min_elements = [float('inf')] * 3 # начальные значения - бесконечность
min_indices = [-1] * 3 # начальные значения -1
# Проходим по массиву и обновляем минимальные элементы и их индексы
for idx, num in enumerate(array):
if num < min_elements[0]:
min_elements = [num, min_elements[0], min_elements[1]]
min_indices = [idx, min_indices[0], min_indices[1]]
elif num < min_elements[1]:
min_elements = [min_elements[0], num, min_elements[1]]
min_indices = [min_indices[0], idx, min_indices[1]]
elif num < min_elements[2]:
min_elements = [min_elements[0], min_elements[1], num]
min_indices = [min_indices[0], min_indices[1], idx]
print("Номера трёх различных минимальных элементов:", min_indices)
В этом решении мы инициализируем три переменные (min_elements
) с начальными значениями "бесконечность" и три переменные (min_indices
) с начальными значениями -1 для отслеживания минимальных элементов и их индексов в массиве. Затем мы проходим по массиву и обновляем минимальные элементы и их индексы только один раз, используя один проход по массиву.
Надеюсь, это поможет! Если у вас есть еще вопросы или что-то неясно, пожалуйста, дайте знать!


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili