2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Оптимизация программы генератора троек
Сообщение16.05.2023, 13:19 
Booker48 в сообщении #1594076 писал(а):
Для больших $x$ программа не будет работать, нужна длинная арифметика, какие-то библиотеки подключать.
Как пример, при $x=622402679=24943\cdot 24953$ должно получиться ровно две тройки (из евклидовой параметризации), но программа выдаёт сотни троек.
Нельзя $y$ объявлять как $real$, будут накапливаться ошибки округления, проверки будут просто неправильно работать.


Чем тогда можно здесь объявить игрек?

А вот и третья тройка с конца:

622402679 26419834 622963163

Проверка:

388 083 102 454 964 569 – 698 007 628 587 556 = 387 385 094 826 377 013
и корень из разности: 622402679

 
 
 
 Re: Оптимизация программы генератора троек
Сообщение16.05.2023, 13:36 
Alek в сообщении #1594092 писал(а):
А вот и третья тройка с конца:

622402679 26419834 622963163

Проверка:

388 083 102 454 964 569 – 698 007 628 587 556 = 387 385 094 826 377 013
и корень из разности: 622402679

Никакой третьей тройки нет. Не может квадрат целого числа заканчиваться на 3. Это всё следствие вашей ошибки при объявлении $y$.

 
 
 
 Re: Оптимизация программы генератора троек
Сообщение16.05.2023, 14:25 
Booker48 в сообщении #1594076 писал(а):
Как пример, при $x=622402679=24943\cdot 24953$ должно получиться ровно две тройки

Booker48 в сообщении #1594095 писал(а):
Никакой третьей тройки нет.

Ну не знаю... У меня для $x=622402679$ получилось в два раза больше троек, чем две: :mrgreen:
x=622402679 y=193692547413188520 z=193692547413188521
x=622402679 y=7765407012072 z=7765407037015
x=622402679 y=7762294998672 z=7762295023625
x=622402679 y=249480 z=622402729


-- 16.05.2023, 14:39 --

Alek в сообщении #1594092 писал(а):
Чем тогда можно здесь объявить игрек?

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

 
 
 
 Re: Оптимизация программы генератора троек
Сообщение16.05.2023, 14:45 
wrest в сообщении #1594101 писал(а):
Booker48 в сообщении #1594076 писал(а):
Как пример, при $x=622402679=24943\cdot 24953$ должно получиться ровно две тройки

Ну не знаю... У меня для $x=622402679$ получилось в два раза больше троек: :mrgreen:

Да, прошу извинить, я имел в виду только примитивные тройки. Две "лишних" кратны $24943^2$ и $24953^2$, соответственно (квадратам делителей $x$).
Но это легко добавить.

 
 
 
 Re: Оптимизация программы генератора троек
Сообщение16.05.2023, 15:04 
wrest в сообщении #1594101 писал(а):
Booker48 в сообщении #1594076 писал(а):

Booker48 в сообщении #1594095 писал(а):

Alek в сообщении #1594092 писал(а):
Чем тогда можно здесь объявить игрек?

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

Понял, спасибо))

 
 
 
 Re: Оптимизация программы генератора троек
Сообщение16.05.2023, 16:35 
Booker48 в сообщении #1594104 писал(а):
Две "лишних" кратны $24943^2$ и $24953^2$, соответственно (квадратам делителей $x$).

Не знаю что вы подразумеваете под "кратны квадратам", но у этих троек
x=622402679 y=7765407012072 z=7765407037015
x=622402679 y=7762294998672 z=7762295023625

НОД(x,y,z) равны 24943 и 24953 (не квадраты). Эти две тройки не примитивные, да.

 
 
 
 Re: Оптимизация программы генератора троек
Сообщение16.05.2023, 17:22 
wrest в сообщении #1594119 писал(а):
Не знаю что вы подразумеваете под "кратны квадратам", но у этих троек
$x=622402679 y=7765407012072 z=7765407037015$
$x=622402679 y=7762294998672 z=7762295023625$
НОД(x,y,z) равны 24943 и 24953 (не квадраты).

Совершенно верно. Кратны делителям $x$, я имел в виду.
Но в выражении $x^2+y^2=z^2$ все слагаемые кратны квадратам делителей $x$.
Прошу прощения за невнятность изложения.

 
 
 [ Сообщений: 22 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group