На питоне, максимально упрощенно, пожалуйста
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать произвольные целые значения от 30 до 100. Опишите алгоритм, который находит и выводит номера двух элементов массива, наименее отличающихся друг от друга.
Ответы
Ответ:
# Создаем массив из 20 элементов со случайными целыми значениями от 30 до 100
import random
array = [random.randint(30, 100) for i in range(20)]
# Инициализируем индексы двух элементов, наименее отличающихся друг от друга, как 0 и 1
min_diff_i1, min_diff_i2 = 0, 1
min_diff = abs(array[min_diff_i1] - array[min_diff_i2])
# Проходим по всем парам элементов массива и находим наименьшую разницу между ними
for i in range(20):
for j in range(i+1, 20):
diff = abs(array[i] - array[j])
if diff < min_diff:
min_diff = diff
min_diff_i1, min_diff_i2 = i, j
# Выводим найденные индексы элементов массива
print(min_diff_i1, min_diff_i2)
Объяснение:
В этом коде мы создаем массив из 20 элементов со случайными целыми значениями от 30 до 100 с помощью функции randint модуля random. Затем мы инициализируем индексы двух элементов, наименее отличающихся друг от друга, как 0 и 1, и наименьшую разницу между ними как разницу между первым и вторым элементами массива.
Затем мы проходим по всем парам элементов массива с помощью двух вложенных циклов for и находим наименьшую разницу между ними. Если разница меньше, чем текущая наименьшая разница, мы обновляем индексы двух элементов, наименее отличающихся друг от друга, и наименьшую разницу.
В конце мы выводим найденные индексы элементов массива с наименьшей разницей.