powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / donald + gerald = robert
12 сообщений из 12, страница 1 из 1
donald + gerald = robert
    #39844450
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может есть у кого решение по этой задачке на sql?
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844466
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanya,
есть. перебор.
но задача предназначена для тренировки мозгов и желательно уложиться в 15 мин.
вот и тренеруйте их.
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844485
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaМожет есть у кого решение по этой задачке на sql?
не ленитесь изложить таки что вам надо
если словами не получается, то хотя бы ссылку на сабж. явили
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844494
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

один из примеров
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844503
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй, да, эта
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844507
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanya,

Тупо в лоб:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
with q(n) as (
  select 0 from dual union select 1 from dual union select 2 from dual union 
  select 3 from dual union select 4 from dual union select 6 from dual union 
  select 7 from dual union select 8 from dual union select 9 from dual
),
q2 as (
  select 
    d0.n||d1.n||d2.n||d3.n||d4.n||d5.n||d6.n||d7.n||d8.n permutation
  from q d0
  join q d1 on d1.n not in (d0.n)
  join q d2 on d2.n not in (d0.n,d1.n)
  join q d3 on d3.n not in (d0.n,d1.n,d2.n)
  join q d4 on d4.n not in (d0.n,d1.n,d2.n,d3.n)
  join q d5 on d5.n not in (d0.n,d1.n,d2.n,d3.n,d4.n)
  join q d6 on d6.n not in (d0.n,d1.n,d2.n,d3.n,d4.n,d5.n)
  join q d7 on d7.n not in (d0.n,d1.n,d2.n,d3.n,d4.n,d5.n,d6.n)
  join q d8 on d8.n not in (d0.n,d1.n,d2.n,d3.n,d4.n,d5.n,d6.n,d7.n)
),
q3 as (
  select 
    translate('DONALD','DONALGERBT','5'||permutation) donald,
    translate('GERALD','DONALGERBT','5'||permutation) gerald,
    translate('ROBERT','DONALGERBT','5'||permutation) robert
  from q2
)
select * 
from q3 
where donald+gerald=robert
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844533
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно другое - даже без подсказки D=5 задача имеет единственное решение.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
with q(n) as (
  select 0 from dual union select 1 from dual union select 2 from dual union 
  select 3 from dual union select 4 from dual union select 5 from dual union 
  select 6 from dual union select 7 from dual union select 8 from dual union select 9 from dual
),
q2 as (
  select 
    d0.n||d1.n||d2.n||d3.n||d4.n||d5.n||d6.n||d7.n||d8.n||d9.n permutation
  from q d0
  join q d1 on d1.n not in (d0.n)
  join q d2 on d2.n not in (d0.n,d1.n)
  join q d3 on d3.n not in (d0.n,d1.n,d2.n)
  join q d4 on d4.n not in (d0.n,d1.n,d2.n,d3.n)
  join q d5 on d5.n not in (d0.n,d1.n,d2.n,d3.n,d4.n)
  join q d6 on d6.n not in (d0.n,d1.n,d2.n,d3.n,d4.n,d5.n)
  join q d7 on d7.n not in (d0.n,d1.n,d2.n,d3.n,d4.n,d5.n,d6.n)
  join q d8 on d8.n not in (d0.n,d1.n,d2.n,d3.n,d4.n,d5.n,d6.n,d7.n)
  join q d9 on d9.n not in (d0.n,d1.n,d2.n,d3.n,d4.n,d5.n,d6.n,d7.n,d8.n)
),
q3 as (
  select 
    translate('DONALD','DONALGERBT',permutation) donald,
    translate('GERALD','DONALGERBT',permutation) gerald,
    translate('ROBERT','DONALGERBT',permutation) robert
  from q2
)
select * 
from q3 
where donald+gerald=robert

...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844543
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ну, как работает q(n) ?
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844550
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ну, почему вы translate используете DONALGERBT?
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844558
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaДа ну, как работает q(n) ?
subquery factoring clause

И запрос этот для Oracle, а не для MySQL.
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844566
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaДа ну, почему вы translate используете DONALGERBT?
Уникальный набор букв
...
Рейтинг: 0 / 0
donald + gerald = robert
    #39844762
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ну, в permutation какое значение будет?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / donald + gerald = robert
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]