0 / 0 / 0
Регистрация: 20.02.2021
Сообщений: 17

Решить задачу с уровнем сложности меньше чем О(n^2)

05.03.2021, 19:34. Показов 3223. Ответов 31
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно решить задачу,
У нас есть n гирь, расположенных от самого легкого до самого тяжелого (их веса указаны в поле веса). Несколько гирь могут иметь одинаковый вес. Для простоты мы предполагаем, что вес каждого груза является целым числом в граммах. Реализуйте метод, который возвращает, можем ли мы выбрать любые 2 веса, чтобы сумма их весов была точно h.

Java
1
2
3
4
5
6
7
public class SpravneZavazia {
 
        public static boolean obsahujeVyberSHmotnostou(int[] zavazia, int h) {
                return true;
        }
 
}
Нужно решить данное задание лучшем чем o(n^2)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2021, 19:34
Ответы с готовыми решениями:

Найти сумму баллов за задачу у n учеников меньше чем за остальные
Вводятся баллы за задачи нескольких учеников. Нужно определить наилегчайшую задачу(сумма баллов за задачу у n учеников меньше чем за...

что, где и как нужно изменить чтоб решить задачу? ->Сколько лет доходов было меньше 1000, но больше 500 у.е? когда фирма понесла наибольший убыток?
Program Pr_11; Type mas=array of real; Var k:integer; y: mas; S,sa:real; kol: integer; Function f(x:integer):real; Begin ...

Решить задачу симплекс-методом и написать двойственную к ней задачу
решите пожалуйста

31
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
06.03.2021, 18:28
Студворк — интернет-сервис помощи студентам
Arsegg, второе — найти такие две гири, сумма весов которых равна h, это вполне стандартная алгоритмическая задача. Формулировка немного кривая. Разве что ТС это опровергнет, но тогда это будет очень странно.
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
06.03.2021, 18:59
korvin_, правильно ли я понял, что вы хотели реализовать данный алгоритм: Given a sorted array and a number x, find the pair in array whose sum is closest to x? Т. е. найти такую пару весов, сумма которой стремится к h, и если данная сумма равна h возвращать true?

Добавлено через 8 минут
Изначально, я не обратил внимания на то, что массив был изначально отсортирован, и поэтому смотрел на решение проблемы через хеширование. Если не задействовать доп. память (хеш-таблицу), можно перестроить входной массив (неотсортированный) в хеш-таблицу с открытой адресацией (разрешение коллизий можно взять любое: линейное, квадратичное, кукушки и т. п.) за один проход, а за второй - уже, собственно, искать пару. Время работы будет линейное без доп. памяти.
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
06.03.2021, 20:10
Цитата Сообщение от Arsegg Посмотреть сообщение
товарищи, ну вы что? vcrop уже решил за линию.
Можно и без HashSet:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        public static boolean obsahujeVyberSHmotnostou(int[] zavazia, int h) {
            int lowest = 0;
            int highest = zavazia.length - 1;
            
            while (lowest < highest) {
                System.out.println(zavazia[lowest] + " " + zavazia[highest]);
                if (zavazia[lowest] + zavazia[highest] == h)
                    return true;
                
                if (zavazia[lowest] + zavazia[highest] > h)
                    highest--;
                else 
                    lowest++;
            }
            return false;
 
        }
Цитата Сообщение от Arsegg Посмотреть сообщение
Если в бакете элементов меньше 8, то сложность линейная
А если нет?

Добавлено через 3 минуты
Цитата Сообщение от korvin_ Посмотреть сообщение
Разве что ТС это опровергнет, но тогда это будет очень странно.
Маловероятно, что опровергнет и на этот случай решение уже есть.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
06.03.2021, 21:18
Цитата Сообщение от Tavashi Посмотреть сообщение
А если нет?
Если нет, то связный список перестраивается в красно-черное дерево. А там поиск идет за логарифм.
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
06.03.2021, 23:21
Цитата Сообщение от Arsegg Посмотреть сообщение
поиск идет за логарифм.
Что и увеличит время для редкого случая.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
07.03.2021, 12:07
Цитата Сообщение от Tavashi Посмотреть сообщение
Что и увеличит время для редкого случая.
Чтобы не увеличивало: пишешь perfect hash function и получаешь гарантированную константу.
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
07.03.2021, 17:00
Цитата Сообщение от Arsegg Посмотреть сообщение
perfect hash function
Такой не существует.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
07.03.2021, 18:51

Не по теме:

Цитата Сообщение от Tavashi Посмотреть сообщение
Такой не существует.
Я бы так не утверждал))



Добавлено через 4 минуты

Не по теме:

Tavashi, кури.

1
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
07.03.2021, 20:10
Arsegg, perfect hash function и minimal perfect hashing не одно и то же. Автор статьи как раз об этом пишет.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
07.03.2021, 21:21
Цитата Сообщение от Tavashi Посмотреть сообщение
perfect hash function и minimal perfect hashing не одно и то же.
Упрлс? Учи мат. часть: Minimal perfect hash function!
A minimal perfect hash function is a perfect hash function...
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
08.03.2021, 01:36
Цитата Сообщение от Arsegg Посмотреть сообщение
A minimal perfect hash function is a perfect hash function..
Есть описание дальше одной строчки:
Then F is a minimal perfect hash function if and only if F(j) = F(k) implies j = k (injectivity) and there exists an integer a such that the range of F is a..a + |S| − 1.
Другими словами, это то о чем пишет автор статьи:
Perfect hashing is a technique for building a hash table with no collisions. It is only possible to build one when we know all of the keys in advance.
То есть, можно построить идеальную (не дающую коллизий) хеш-функцию только для некоторого конечного набора. Иначе, если набор заранее неизвестен - нет.
Вот здесь более подробно:
A perfect hash function (PHF) h : S → [0, m − 1] for a key set S ⊆ U of size n, where m ≥ n and U is a key universe, is an injective function that maps the keys of S to unique values. A minimal perfect hash function (MPHF) is a PHF with m = n, the smallest possible range.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
08.03.2021, 14:26
Цитата Сообщение от Tavashi Посмотреть сообщение
То есть, можно построить идеальную (не дающую коллизий) хеш-функцию только для некоторого конечного набора. Иначе, если набор заранее неизвестен - нет.
Ясное дело.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.03.2021, 14:26

Помогите решить задачу сломал голову не знаю как решить.
1)Определить максимальный элемент в каждой строке матрицы и заменить все элементы 2 столбца на этот максимальный элемент. 2)Определить...

Решить задачу 2-SAT (задачу выполнимости)
Здравствуйте. Помогите, пожалуйста, разобраться. Пытаюсь реализовать алгоритм, решающий задачу 2-SAT (задача выполнимости). Есть следующий...

Timer.Interval: чем меньше интервал, тем меньше точность
Нужно написать программу, которая каждую мс будет выполнять определенное действие. За основу решил взять компонент Timer и начать...

Очень нужно решить задание,сдаю первую сессию и возникли сложности...
Ув. участники форума! Не могу решить задачу такого рода: По трем заданным матрицам A(N,N), В(N,N) и С(N,N) постройте матрицу Х того же...

Вычислить произведение значений, которые меньше чем -1 или больше, чем 4
Вычислить произведение значений, которые меньше чем -1 или больше, чем 4.


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru