powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обобщённая Теорема Ферма
3 сообщений из 3, страница 1 из 1
Обобщённая Теорема Ферма
    #36244163
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем известна Великая Теорема Ферма X^n + Y^n = Z^n. Одна из самых популярных тем математики.

DB2 представляет возможность поиграться с этой теоремой.
Убедиться, что она не имеет решений для n > 2 и имеет для n = 2.

Попробуйте.
Как всегда надо лишь скопировать код и запустить его на выполнение.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with pN(n, lim) as
( select 2, 300 from sysibm.sysdummy1)
,
Arguments(A, ApN) as 
(select int(1), int(1) from sysibm.sysdummy1
union all
select A + 1, power(A + 1, N)
from Arguments, pN
where A + 1 <= lim * power(2, 1. / N) + 1
)  
select X.A x, Y.A y, Z.A z,  
varchar(X.A) || '^' || varchar(N) || ' + '   || varchar(Y.A) || '^' || varchar(N)  
                   || ' = ' || varchar(Z.A) || '^' || varchar(N)    "Fermat Solution"
from Arguments X, Arguments Y, Arguments Z, pN 
where X.ApN + Y.ApN = Z.ApN 
  and Y.A           > X.A
  and Z.A           > X.A
  and Z.A           > Y.A
  and Z.A        <= X.A + Y.A
Order By Z.A, X.A, Y.A

Возникает вопрос: Почему топик назван "Обобщённая Теорема Ферма " ?

В чём обобщение ?

Равенство X^n + Y^n = Z^n мы преобразуем в равенство:
Z^n / (X^n + Y^n) = 1.

Для n > 2 мы будем искать решение в интервале, но уже не равенства, а неравенства: :ok
abs(Z^n / (X^n + Y^n) - 1) <= eps , или Z^n between (X^n + Y^n) * ( 1 - eps) and (X^n + Y^n) * ( 1 + eps)

Таким образом мы меняем наш SQL, и уже находим решения для n > 2: :yahoo

Код: sql
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.
30.
with pN(n, lim, eps) as
( select 3, 300, double(1e-5) from sysibm.sysdummy1)
,
ArgX(x, XpN) as 
(select int(1), double(1) from sysibm.sysdummy1
union all
select X + 1, power(double(X + 1), N)
from ArgX, pN
where X + 1 <= lim
) 
,
ArgY(y, YpN) as 
(select * from ArgX )
,
ArgZ(z, ZpN) as 
(select int(1), double(1) from sysibm.sysdummy1
union all
select Z + 1, power(double(Z + 1), N)
from ArgZ, pN
where Z + 1 <= lim * power(2, 1. / n) + 1
) 
select X argX, Y argY, Z argZ , N "Power", (ZpN - (XpN + YpN)) "Absolute Difference" , 
double(ZpN) / double(XpN + YpN) - 1.0 "Relative Difference" 

from ArgX, ArgY, ArgZ, pN 
where ZpN between (XpN + YpN) * ( 1. - eps) and (XpN + YpN) * ( 1. + eps) 
and X < Y
and Y < Z
and X < Z
and Z <= X + Y 
order by abs(ZpN - (XpN + YpN)), X, Y

Lenny Khiger, ADSPA&VP
...
Рейтинг: 0 / 0
Обобщённая Теорема Ферма
    #36244166
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем известна Великая Теорема Ферма X^n + Y^n = Z^n. Одна из самых популярных тем математики.

DB2 представляет возможность поиграться с этой теоремой.
Убедиться, что она не имеет решений для n > 2 и имеет для n = 2.

Попробуйте.
Как всегда надо лишь скопировать код и запустить его на выполнение.

авторwith pN(n, lim) as
( select 2, 300 from sysibm.sysdummy1)
,
Arguments(A, ApN) as
(select int(1), int(1) from sysibm.sysdummy1
union all
select A + 1, power(A + 1, N)
from Arguments, pN
where A + 1 <= lim * power(2, 1. / N) + 1
)
select X.A x, Y.A y, Z.A z,
varchar(X.A) || '^' || varchar(N) || ' + ' || varchar(Y.A) || '^' || varchar(N)
|| ' = ' || varchar(Z.A) || '^' || varchar(N) "Fermat Solution"
from Arguments X, Arguments Y, Arguments Z, pN
where X.ApN + Y.ApN = Z.ApN
and Y.A > X.A
and Z.A > X.A
and Z.A > Y.A
and Z.A <= X.A + Y.A
Order By Z.A, X.A, Y.A

Возникает вопрос: Почему топик назван "Обобщённая Теорема Ферма" ?

Код: plaintext
В чём обобщение ?

Равенство X^n + Y^n = Z^n мы преобразуем в равенство:
Z^n / (X^n + Y^n) = 1.

Для n > 2 мы будем искать решение в интервале, но уже не равенства, а неравенства: :ok
abs(Z^n / (X^n + Y^n) - 1) <= eps, или Z^n between (X^n + Y^n) * ( 1 - eps) and (X^n + Y^n) * ( 1 + eps)

Таким образом мы меняем наш SQL, и уже находим решения для n > 2:

авторwith pN(n, lim, eps) as
( select 3, 300, double(1e-5) from sysibm.sysdummy1)
,
ArgX(x, XpN) as
(select int(1), double(1) from sysibm.sysdummy1
union all
select X + 1, power(double(X + 1), N)
from ArgX, pN
where X + 1 <= lim
)
,
ArgY(y, YpN) as
(select * from ArgX )
,
ArgZ(z, ZpN) as
(select int(1), double(1) from sysibm.sysdummy1
union all
select Z + 1, power(double(Z + 1), N)
from ArgZ, pN
where Z + 1 <= lim * power(2, 1. / n) + 1
)
select X argX, Y argY, Z argZ , N "Power", (ZpN - (XpN + YpN)) "Absolute Difference" ,
double(ZpN) / double(XpN + YpN) - 1.0 "Relative Difference"

from ArgX, ArgY, ArgZ, pN
where ZpN between (XpN + YpN) * ( 1. - eps) and (XpN + YpN) * ( 1. + eps)
and X < Y
and Y < Z
and X < Z
and Z <= X + Y
order by abs(ZpN - (XpN + YpN)), X, Y

Lenny Khiger, ADSPA&VP
...
Рейтинг: 0 / 0
Обобщённая Теорема Ферма
    #36244170
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я применил соотношения:

автор......Y.A > X.A
and Z.A > X.A
and Z.A > Y.A
and Z.A < X.A + Y.A
для ускорения работы и упорядочения реультата.

Где Z.A < X.A + Y.A следует из известной теоремы о сумме двух сторон треугольника, которая всегда больше третьей.

Соотношение Y.A > X.A убирает симметричные решения типа:

Из двух решений 3^2 + 4^2 = 5^2 и 4^2 +3^2 = 5^2 остаётся только первое.

Lenny
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обобщённая Теорема Ферма
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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