Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Задача про шкафы. Лучшее решение  [new]
Areostar
Member

Откуда:
Сообщений: 3603
Допустим что имеется определённое количество шкафов. у каждого одинаковое количество полочек часть полочек занята книгами.
В наличии имеется база данных(в в таблице номер записи, номер шкафа, номер полочки) занятых полочек. Надо получить список свободных полочек.

Простое решение выбираем всю инфу о занятых полочках. сортируем по порядку. и перебором(количесто шкафов и полочек знаем) находим все что отсутствует!

Возможно ли как нибудь более елегантно?
26 июл 20, 14:53    [22173808]     Ответить | Цитировать Сообщить модератору
 Re: Задача про шкафы. Лучшее решение  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 2204
Areostar
...... часть полочек занята книгами.
А ещё информация о количестве свободного места на полочке.

А ещё информация о номере этажа в здании, где находится очередной шкаф.

А ещё информация о здании (о библиотеке), в котором..., на котором...,в котором..., на которой...
26 июл 20, 16:13    [22173828]     Ответить | Цитировать Сообщить модератору
 Re: Задача про шкафы. Лучшее решение  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 62839
Блог
Areostar
В наличии имеется база данных(в в таблице номер записи, номер шкафа, номер полочки) занятых полочек. Надо получить список свободных полочек.

Задача нерешаема. На пальцах:

Номер записиНомер шкафаНомер полочки
111
221
331
441
522

Внимание, вопрос. Как по этим данным узнать, что в шкафах №№1-5 свободны полки №№ 3, 4, 5, 6?

Сообщение было отредактировано: 26 июл 20, 18:15
26 июл 20, 18:18    [22173847]     Ответить | Цитировать Сообщить модератору
 Re: Задача про шкафы. Лучшее решение  [new]
Areostar
Member

Откуда:
Сообщений: 3603
softwarer,

Но я знаю сколько всего шкафов. В каждом одинаковое количество полок. Нажно найти все полки не упомянутые в таблице!
26 июл 20, 18:40    [22173853]     Ответить | Цитировать Сообщить модератору
 Re: Задача про шкафы. Лучшее решение  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 62839
Блог
Areostar
В каждом одинаковое количество полок. Нажно найти все полки не упомянутые в таблице!

Если известны количество шкафов и количество полок, то решение как бы очевидно.

SQL> with
  2      closets as
  3          (
  4              select
  5                  rownum n#
  6              from
  7                  dual
  8              connect by
  9                  level <= 6
 10          ),
 11      shelves as
 12          (
 13              select
 14                  rownum n#
 15              from
 16                  dual
 17              connect by
 18                  level <= 4
 19          ),
 20      filled as
 21          (
 22              select
 23                  1 closet,
 24                  1 shelve
 25              from
 26                  dual
 27              union all
 28              select
 29                  2 closet,
 30                  1 shelve
 31              from
 32                  dual
 33              union all
 34              select
 35                  3 closet,
 36                  1 shelve
 37              from
 38                  dual
 39              union all
 40              select
 41                  4 closet,
 42                  1 shelve
 43              from
 44                  dual
 45              union all
 46              select
 47                  5 closet,
 48                  2 shelve
 49              from
 50                  dual
 51          )
 52  select
 53      c.n# "Шкаф",
 54      s.n# "Полка"
 55  from
 56      closets c,
 57      shelves s
 58  minus
 59  select
 60      *
 61  from
 62      filled;

      Шкаф      Полка
---------- ----------
         1          2
         1          3
         1          4
         2          2
         2          3
         2          4
         3          2
         3          3
         3          4
         4          2
         4          3
         4          4
         5          1
         5          3
         5          4
         6          1
         6          2
         6          3
         6          4

19 rows selected


Сообщение было отредактировано: 26 июл 20, 19:07
26 июл 20, 19:10    [22173859]     Ответить | Цитировать Сообщить модератору
 Re: Задача про шкафы. Лучшее решение  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Давайте сразу создадим формулу для Библиотеки Борхеса.

Зачем нам эти мелочи.
26 июл 20, 20:45    [22173889]     Ответить | Цитировать Сообщить модератору
 Re: Задача про шкафы. Лучшее решение  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50842
Если перестать давать топикстартеру готовые к употреблению ответы, он умрёт с голоду, поскольку не сможет зарабатывать, перепродавая их на фриланс сайтах.
27 июл 20, 13:53    [22174172]     Ответить | Цитировать Сообщить модератору
 Re: Задача про шкафы. Лучшее решение  [new]
Areostar
Member

Откуда:
Сообщений: 3603
Вопрос давно решён! Всем спасибо!
4 авг 20, 09:35    [22177277]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить