Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 18.04.2018
Сообщений: 60

Существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трех элементов второго массива?

12.09.2019, 18:29. Показов 5489. Ответов 73
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Должны бать 2 массива,которые состоят из рандомных чисел (0-10) . Сделать функцию для того определения существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трех элементов второго массива.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.09.2019, 18:29
Ответы с готовыми решениями:

Определить существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трех элементов второго
Даны два массива. Определите, существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трех элементов второго...

Определите, существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трех элементов второг
Даны два массива. Определите, существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо трех элементов второго...

Определить, существуют ли в первом массиве два элемента, сумма которых равна сумме трех элементов из второго массива
Условие задачи: Даны два массива. Определите, существуют ли в первом массиве такие два элемента, что их сумма равна сумме каких-либо...

73
14.09.2019, 09:32
Студворк — интернет-сервис помощи студентам

Не по теме:

Damenikx, дело не в бумаге, а просто надо читать от начала до конца, ничего не пропуская и не прыгая между темами.

0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
14.09.2019, 18:48
vrm2, я вчера тоже хотел выложить такой код
Python
1
2
3
4
5
6
 from itertools import combinations
from random import randint
n = 20
list1 = [sum(x) for x in set(combinations([randint(0,10) for _ in range(n)],2))]
list2 = [sum(x) for x in set(combinations([randint(0,10) for _ in range(n)],3))]
print('YES' if set(list1).intersection(set(list1)) else 'NO')
но посмотрев комбинации для списка из 20 чисел понял что есть повторения комбинаций для чего приходиться использовать множества. вобщем решил что не очень оптимально. кстати в задании сказано
Цитата Сообщение от LONGO Посмотреть сообщение
которые состоят из рандомных чисел (0-10)
а не последовательности
Цитата Сообщение от vrm2 Посмотреть сообщение
arr1 = range(3)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
14.09.2019, 18:50
Semen-Semenich, вы правы, в составлении второго списка нет нужды, задача то сообщить при первом же совпадении, решается проще.
0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
14.09.2019, 19:18
Welemir1,я не про то. по условию есть 2 списка как ни крути. я про то что itertools combinations выдал в результате кучу комбинаций с повторениями типа [(5,3),(5,3)] да и зачем нам комбинация (3,5) если сумма та же что и при (5,3). даже множество не спасет
Python
1
2
>>> print(set([(5,3),(5,3),(3,5)]))
{(3, 5), (5, 3)}
вобщем тут вопрос оптимизации как лучше все это обойти исключая повторы
а понял про что вы. второй список из сум. да это точно лишнее
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
14.09.2019, 19:29
Semen-Semenich, рассуждая теоретически -первый список можно получить двумя циклами с условием (что нет уже такой суммы и элемент не складывается сам с собой), но скорее всего это будет медленнее и точно менее читаемей чем комбинации. А второй список даже не получать, генератором брать по 1 значению и как только совпало кричать караул.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
14.09.2019, 19:47
Мне кажется (профи подправят), что это на много легче сделать с помощью numpy, на сколько я знаю, там есть возможность сделать это проще.

Добавлено через 28 секунд
Но всё равно дядюшка Весемир Велемир - прав.

Добавлено через 26 секунд
Нет смысла изобретать велосипед, если его уже изобрели.
0
14.09.2019, 19:50

Не по теме:

Цитата Сообщение от Damenikx Посмотреть сообщение
Нет смысла изобретать велосипед, если его уже изобрели.
ошибочное мнение, посмотри в гугле сколько типов и видов велосипедов, посиди, подумай...

0
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
15.09.2019, 09:30
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
я не про то. по условию есть 2 списка как ни крути. я про то что itertools combinations выдал в результате кучу комбинаций с повторениями типа [(5,3),(5,3)] да и зачем нам комбинация (3,5) если сумма та же что и при (5,3). даже множество не спасет
Нет, itertools.combinations сам по себе не создает повторы. Из примера ниже видно, что отсутствуют "переставленные" варианты (2,1), (3,1), (3,2)

Python
1
2
>>> list(itertools.combinations([1,2,3],2))
[(1, 2), (1, 3), (2, 3)]
Но если в списке элементы будут повторяться, то itertools.combinations будет считать их разными элементами, т.к. эта функция различает элементы не по значению, а по их индексу. И повторы появятся.

Python
1
2
>>> list(itertools.combinations([1,3,1],2))
[(1, 3), (1, 1), (3, 1)]
Чтобы устранить эту проблему достаточно не передавать в itertools.combinations одинаковые числа

Python
1
2
3
>>> list(itertools.combinations(set([1,3,1]),2))
[(1, 3)]
>>>
Цитата Сообщение от Welemir1 Посмотреть сообщение
вы правы, в составлении второго списка нет нужды, задача то сообщить при первом же совпадении, решается проще.
Вот оптимизированное решение, которое останавливает поиск при нахождении первой совпавшей суммы.
Для просмотра второго списка используются генератор вместо цикла.

Python
1
2
3
4
5
6
7
8
9
10
arr1 = [random.randint(0, 10) for _ in range(500)]
arr2 = [random.randint(0, 10) for _ in range(500)]
 
sums1 = set(sum(comb) for comb in itertools.combinations(set(arr1), 2))  # type: Set[int]
 
sums2 = (sum(comb) for comb in itertools.combinations(set(arr2), 3))  # type: Iterator[int]
common_sums = filter(lambda s: s in sums1, sums2)
one_common_sum_or_none = next(common_sums, None)
 
print(f"Одинаковая сумма: {one_common_sum_or_none}")
Добавлено через 4 минуты
UPD:

Ой, в некоторых случаях использование itertools.combinations(set(...)) может привести к неправильному ответу в этой задаче...
2
16.09.2019, 08:20

Не по теме:

Мда уж, я бы точно сам бы вряд-ли додумался :)

0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
16.09.2019, 08:48
Damenikx, вообще то эту задачу можно решить без всяких библиотек на чистых циклах и энтузиазме. Да кода больше, но работает быстро и надежно. Имеено этого я и пробовал от тебя добиться...
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
16.09.2019, 08:56
Цитата Сообщение от Welemir1 Посмотреть сообщение
Damenikx, вообще то эту задачу можно решить без всяких библиотек на чистых циклах и энтузиазме. Да кода больше, но работает быстро и надежно. Имеено этого я и пробовал от тебя добиться...
Великий сенсей, падаван глуб и неопытен, и много не знает. Но падаван готов и хочет учиться! (заказал Лутца, не самого конечно, а книгу, скоро должна приехать, ибо читать на мониторе, глаза вытекают. Хотя, мне кажется даже если бы я заказл бы Лутца, он бы ударил мне по голове бутылкой и сбежал бы.)
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
16.09.2019, 09:03

Не по теме:

ок, а с бутылками завязывай))

1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
16.09.2019, 09:35


Не по теме:

Ок!

0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
16.09.2019, 10:31

Не по теме:

Цитата Сообщение от Damenikx Посмотреть сообщение
заказал Лутца
за что? пусть живет и пишет!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.09.2019, 10:31

Если есть два элемента массива, что их сумма равна сумме всех остальных элементов
Задача: Есть массив a состоящий из n целых чисел. Есть ли в массиве два различных индекса i и j такие, что ai + aj равна сумме всех...

Определить, существуют ли такие числа, что сумма их квадратов равна заданному числу
Условие Дано неотрицательное целое число N. Требуется определить, существуют ли такие неотрицательные целые числа x и y, что x2 + y2 = N....

Найти в массиве число такое, что сумма элементов до него была равна сумме элементов после него
Помогите написать программу: Есть массив от 1 до 30.Найти в массиве такое число, чтоб сумма значение слева были равна сумме значений...

Верно ли, что сумма первых трех цифр шестизначного натурального числа равна сумме трех последних его цифр?
Простая целочисленная арифметика Верно ли, что сумма первых трех цифр шестизначного натурального числа равна сумме трех последних...

Равна ли сумма индексов каких-либо двух элементов матрицы под главной диагональю, ее минимальному элементу?
Дана квадратная матрица А порядка N, состоящая из натуральных чисел. Если сумма индексов каких-либо двух элементов матрицы, расположенных...


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

Или воспользуйтесь поиском по форуму:
74
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru