Про три куба
Студенты интересовались недавно задачкой: какие натуральные числа можно разложить в сумму трех кубов натуральных чисел, а какие нельзя. Подумав немного, задачу я не решила. А потом оказалось, что им не абстрактно эта задача нужна, а нужно написать программку, которая по заданному числу будет его раскладывать (либо не раскладывать) в сумму трех кубов.
Ну, и я пошутила, что программа пишется за 2 часа, если это просто программка, а не извращение какое-то типа “составить sql-запрос”. А придя домой подумала, а почему бы и не составить sql-запрос? На составление ушло минут 10, 9 из которых я вспоминала как правильно пользоваться CTE.
Вот запрос, который выводит таблицу всех разбиений чисел от 700 000 до 800 000.
with t as
(
select 1 as a, 1 as a3
union all
select a+1 as a, (a+1)*(a+1)*(a+1) as a3 from t
where t.a<100
)
select a,b,c,S
from (
select t1.a as a, t2.a as b, t3.a as c, t1.a3+t2.a3+t3.a3 as S
from t t1
join t t2 on (t1.a<=t2.a)
join t t3 on (t2.a<=t3.a)
) deccube
where (s<800000) and (s>700000)
order by s
Вобщем, я молодец. Почти как студентка.
bukov_ka 2012-05-01T10:04:57Z
[deleted] 2012-05-01T10:39:35Z
kukina_kat 2012-05-01T15:12:45Z
[deleted] 2012-05-01T15:23:00Z
kukina_kat 2012-05-01T15:59:52Z
[deleted] 2012-05-01T16:09:00Z
kukina_kat 2012-05-01T18:15:51Z
[deleted] 2012-05-01T11:38:47Z
kukina_kat 2012-05-01T15:13:17Z
[deleted] 2012-05-03T04:17:15Z
kukina_kat 2012-05-03T07:10:14Z
[deleted] 2012-05-01T12:07:34Z
kukina_kat 2012-05-01T15:14:23Z
[deleted] 2012-05-01T13:30:46Z
kukina_kat 2012-05-01T15:17:56Z
[deleted] 2012-05-01T15:46:38Z
kukina_kat 2012-05-01T16:01:59Z
Вы нашли, что спросить у математика.
bukov_ka 2012-05-01T16:06:18Z
[deleted] 2012-05-02T04:05:23Z
kukina_kat 2012-05-02T18:33:33Z