Вопрос задан 21.06.2023 в 19:27. Предмет Информатика. Спрашивает Поляков Даниил.

Помогите решить задачу python для школы, желательно с объяснением 1. Заполните массив случайными

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Богданова Ирина.

Ответ:

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, давайте начнем с первой задачи.

Задача 1:

python
import 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:

python
import 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 для отслеживания минимальных элементов и их индексов в массиве. Затем мы проходим по массиву и обновляем минимальные элементы и их индексы только один раз, используя один проход по массиву.

Надеюсь, это поможет! Если у вас есть еще вопросы или что-то неясно, пожалуйста, дайте знать!

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос