Как можно решить задачу на Python, в которой массив из 20 элементов содержит числа, образующие неубывающую последовательность, и некоторые элементы, идущие подряд, имеют одинаковые значения? Необходимо определить количество таких элементов и выяснить, сколько различных чисел присутствует в массиве.
Информатика 11 класс Массивы и последовательности задача на Python массив из 20 элементов неубывающая последовательность одинаковые значения количество элементов различные числа в массиве
Для решения данной задачи на Python мы будем использовать несколько шагов. Давайте разберем их по порядку.
Сначала нам нужно создать массив из 20 элементов. Мы можем использовать функцию random.sample()
, чтобы получить неубывающую последовательность с возможными одинаковыми значениями. Например:
import random
# Создаем массив с неубывающей последовательностью
array = sorted(random.choices(range(1, 21), k=20))
Теперь нам нужно пройти по массиву и подсчитать, сколько элементов идут подряд и имеют одинаковые значения. Для этого мы можем использовать цикл:
count = 1
duplicates = 0
for i in range(1, len(array)):
if array[i] == array[i - 1]:
count += 1
else:
if count > 1:
duplicates += count
count = 1
# Проверяем последний элемент
if count > 1:
duplicates += count
В результате переменная duplicates
будет содержать общее количество элементов, которые идут подряд и имеют одинаковые значения.
Чтобы выяснить, сколько различных чисел присутствует в массиве, мы можем воспользоваться множеством. Множество автоматически удаляет дубликаты:
unique_numbers = len(set(array))
В результате переменная unique_numbers
будет содержать количество различных чисел в массиве.
Наконец, мы можем вывести результаты на экран:
print("Количество подряд идущих одинаковых элементов:", duplicates)
print("Количество различных чисел в массиве:", unique_numbers)
Таким образом, мы можем собрать все шаги в одном коде:
import random
# Создаем массив с неубывающей последовательностью
array = sorted(random.choices(range(1, 21), k=20))
count = 1
duplicates = 0
for i in range(1, len(array)):
if array[i] == array[i - 1]:
count += 1
else:
if count > 1:
duplicates += count
count = 1
if count > 1:
duplicates += count
unique_numbers = len(set(array))
print("Количество подряд идущих одинаковых элементов:", duplicates)
print("Количество различных чисел в массиве:", unique_numbers)
Этот код решает поставленную задачу, и вы можете протестировать его, запустив на своем компьютере.