Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41

Расстояние и разность

23.01.2020, 20:01. Показов 2254. Ответов 15

Студворк — интернет-сервис помощи студентам
Задан массив целых положительных чисел a0,a1,…,an−1. Найдите количество пар таких элементов, что они расположены на расстоянии не меньшем, чем модуль разности этих элементов. Расстояние между элементами ai и aj равно |i−j|.

Например, в массиве [1, 1, 1, 1] ответ 6, так как каждая пара подходит под описание. В массиве [3, 1, 6, 2] искомых пар только 2: (a0=3,a3=2) и (a1=1,a3=2).

Входные данные
В первой строке задано одно целое число n (1≤n≤5000) — количество элементов в массиве.

В следующей строке заданы n целых чисел через пробел: a0,a1,…,an−1 (1≤ai≤10000) — элементы массива.

Выходные данные
Выведите одно целое число — количество пар таких элементов, что они расположены на расстоянии не меньшем, чем модуль разности этих элементов.

Примеры

входные данные
4
1 1 1 1
выходные данные
6

входные данные
4
3 1 6 2
выходные данные
2

входные данные
3
5 1 7
выходные данные
1

Не понимаю что тут делать......
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2020, 20:01
Ответы с готовыми решениями:

Расстояние и разность
Задан массив целых положительных чисел a0,a1,…,an−1. Найдите количество пар таких элементов, что они расположены на расстоянии не меньшем,...

Найти пару (ai,aj), где i<j и расстояние между i и j не менее k, для которой разность ai-aj максимальна
Дан набор чисел от а1 до аn нужно найти пару (ai,aj), где i&lt;j и расстояние между i и j не менее k, для которой разность ai-aj максимальна....

Вывести объединение, пересечение, разность А\В, разность В\А и симметрическую разность двух множеств
2) Программа должна запросить у пользователя два множества символов А и В и вывести их объединение, пересечение, разность А\В, разность В\А...

15
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
23.01.2020, 20:10
Цитата Сообщение от marylily Посмотреть сообщение
Не понимаю что тут делать
перебирайте все пары и проверяйте условие,
если условие выполняется увеличивайте счетчик.
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
23.01.2020, 21:23  [ТС]
Какие пары перебирать, типо а[1] и а[2], а[1] и а[3] так?
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
28.01.2020, 08:37  [ТС]
не понимаю, что сравнивать
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.01.2020, 09:06
Python
1
2
3
4
5
6
7
8
9
arr1 = [3, 1, 6, 2]
# arr1 = [1, 1, 1, 1]
count = 0
 
for i in range(len(arr1)):
    for j in range(i, len(arr1)):
        if (j - i) > abs(arr1[i] - arr1[j]):
            count += 1
print(count)
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
28.01.2020, 09:08
iSmokeJC, j и так показывает расстояние между элементами)

Python
1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-
 
 
def example(collection: tuple) -> int:
    counter = 0
    for offset, element in enumerate(collection):
        for i, _element in enumerate(collection[offset + 1:]):
            if abs(element - _element) <= i: counter += 1
    return counter
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.01.2020, 09:15
DmFat, во ёпрст! Внатуре!
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
28.01.2020, 20:26  [ТС]
Цитата Сообщение от DmFat Посмотреть сообщение
def example(collection: tuple) -> int:
    counter = 0
    for offset, element in enumerate(collection):
        for i, _element in enumerate(collection[offset + 1:]):
            if abs(element - _element) <= i: counter += 1
    return counter
Где тут ввод n и строки?
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
28.01.2020, 21:05
Цитата Сообщение от marylily Посмотреть сообщение
Где тут ввод n и строки?
Самостоятельно допишите.
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
29.01.2020, 17:59  [ТС]
Я вообще такого не проходила ни строки, ни enumerate и тд и тп, поэтому объясните мне, пожалуйста, все это, я не понимаю код и не понимаю как ввести
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
10.02.2020, 09:39  [ТС]
Python
1
2
3
4
5
6
7
8
9
[quote="DmFat;14208817"]PythonВыделить код
 
# -*- coding: utf-8 -*-
def example(collection: tuple) -> int:
    counter = 0
    for offset, element in enumerate(collection):
        for i, _element in enumerate(collection[offset + 1:]):
            if abs(element - _element) <= i: counter += 1
    return counter[/quote]
if abs(element - _element) <= i: counter += 1
TypeError: unsupported operand type(s) for -: '...
Ошибка исполнения, код возврата 1

Вот это выдает.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
10.02.2020, 10:04
marylily, 2 недели, 0 прогресса. Как и с остальными задачами. Пора задуматься, а Ваше ли это.
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
10.02.2020, 19:09  [ТС]
Как я исправлю и пойму программу, когда я не enumerate не функции не проходила еще... Во столько сколько мне лет, я считаю это нормально, и если я не поняла одну задачу и не могу дописать ee дабы она работала, то это не значит что это не мое!!!
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
14.02.2020, 16:15
marylily, вы не поверите но я все изучил сам, абсолютно. Я понимаю что в книжках очень много букАв, но надо взять и разобраться с ними, а неизвестные функции есть в документациях. Вы скопипастили мой код, но не показали что вы передаете в функцию.

Полностью ваш код под эту задачу, выглядит так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-
 
 
def example(collection: tuple) -> int:
    counter = 0
    for offset, element in enumerate(collection):
        for i, _element in enumerate(collection[offset + 1:]):
            if abs(element - _element) <= i: counter += 1
    return counter
 
 
input()
print(example(list(map(int, input().split()))))
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
15.02.2020, 12:32  [ТС]
DmFat, знаете, ваша программа вроде работает, НО при входных данных:
3
5 1 7
должны быть выходные данные:
1
А программа выводит 0, а должна 1.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
20.02.2020, 08:00
Лучший ответ Сообщение было отмечено marylily как решение

Решение

marylily,

Дам подсказку: индексация массива идет с 0, то есть когда мы проходим во вложенном цикле по элементам, то расстояние между взятыми элементами начинается с 0, а не с единицы, отсюда вывод что надо добавить единицу (или из разницы элементов вычесть 1) и код начнет работать правильно.

Если тяжело и с подсказкой:

Кликните здесь для просмотра всего текста

Python
1
2
3
4
5
6
7
8
9
10
11
# -*- coding: utf-8 -*-
 
 
def example(collection: tuple) -> int:
    counter = 0
    for offset, element in enumerate(collection):
        for i, _element in enumerate(collection[offset + 1:]):
            if abs(element - _element) <= i + 1: counter += 1
            # Второй вариант:
            # if abs(element - _element) - 1 <= i: counter += 1
    return counter
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2020, 08:00
Помогаю со студенческими работами здесь

Найти разность потенциалов между пластинами, расстояние между пластинами, поверхностную плотность заряда на пластинах
3)Заряд величиной 0.008 нКл и массой 1мг, пройдя в плоском конденсаторе от одной пластины до другой, приобретает скорость 32 м/c....

Найти: объединение множеств, пересечение множеств, разность А\В, разность В\А, симметрическую разность
Составить множество А из букв фамилии, множество В – из букв имени, множество С – из букв отчества (повторяющиеся элементы удалить)....

Найти разность фаз колебаний, оптическую разность хода и порядок интерференции
Здравствуйте! Помогите, пожалуйста, с задачей. Два когерентных источника с длиной волны 600 нм помещены в две среды - сероуглерод (n1...

Найти пересечение, объединение, разность А/В, В/А, доп. А̅, В̅, симметр. разность множеств. Изобразить их на плоскости
Пусть U – множество точек плоскости, на которой задана декартовая система координат. Найти сечение, объединение, разность А/В, В/А, ...

Определить разность максимального и минимального элементов. Заменить положительные элементы списка на данную разность
Напишите функцию (подпрограмму), которая заполняет список из 10 целых чисел числами, считанными с клавиатуры. Определить разность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru