Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.02.2021
Сообщений: 17

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

05.03.2021, 19:34. Показов 3197. Ответов 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,781
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
Ответ Создать тему
Новые блоги и статьи
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru