Talk:Special pythagorean triplet: Difference between revisions

From Rosetta Code
Content added Content deleted
mNo edit summary
m (last guess)
Line 10: Line 10:
Isn't the task to print out abc?
Isn't the task to print out abc?
Also, isn't using Euclid's formula (as in the XPL0 solution) going to be faster - less values to try ? --[[User:Tigerofdarkness|Tigerofdarkness]] ([[User talk:Tigerofdarkness|talk]]) 17:34, 31 August 2021 (UTC)
Also, isn't using Euclid's formula (as in the XPL0 solution) going to be faster - less values to try ? --[[User:Tigerofdarkness|Tigerofdarkness]] ([[User talk:Tigerofdarkness|talk]]) 17:34, 31 August 2021 (UTC)
:Given the rules above it is necessary to check 166 numbers (even numbers between 2 and 332), the XPL0 solution is checking ~454 I think.--[[User:Nigel Galloway|Nigel Galloway]] ([[User talk:Nigel Galloway|talk]]) 14:19, 1 September 2021 (UTC)
:Given the rules above it is necessary to check 166 numbers (even numbers between 2 and 332), the XPL0 solution is checking ~465 I think.--[[User:Nigel Galloway|Nigel Galloway]] ([[User talk:Nigel Galloway|talk]]) 14:19, 1 September 2021 (UTC)


The task description says there is only one triple with a + b + c = 1000, so it must be a primitive one. --[[User:Tigerofdarkness|Tigerofdarkness]] ([[User talk:Tigerofdarkness|talk]]) 18:14, 31 August 2021 (UTC)
The task description says there is only one triple with a + b + c = 1000, so it must be a primitive one. --[[User:Tigerofdarkness|Tigerofdarkness]] ([[User talk:Tigerofdarkness|talk]]) 18:14, 31 August 2021 (UTC)

Revision as of 15:12, 1 September 2021

For those paying "attention to timings" and more importantly for those paying attention to other comments I have made on these Euler tasks about filling RC with solutions worse than I would expect from a schoolboy with a pencil, considering n2+g2=i2 and n+g+i=1000 n<g<i note the following:

the largest value n can take is 332 with g=333 and i=335
the smallest value of i2-g2 is when g=(999-n)/2 and i=1000-g
if i2-g2 is greater than n2 then there can be no solution for this n with a smaller g
n must be even
2(g+i) must be a factor of n2
given these conditions the solution is n, ((g+i)/2)-n2/2(g+i), ((g+i)/2)+n2/2(g+i) asserting that n<g. 

--Nigel Galloway (talk) 14:11, 31 August 2021 (UTC)

Isn't the task to print out abc? Also, isn't using Euclid's formula (as in the XPL0 solution) going to be faster - less values to try ? --Tigerofdarkness (talk) 17:34, 31 August 2021 (UTC)

Given the rules above it is necessary to check 166 numbers (even numbers between 2 and 332), the XPL0 solution is checking ~465 I think.--Nigel Galloway (talk) 14:19, 1 September 2021 (UTC)

The task description says there is only one triple with a + b + c = 1000, so it must be a primitive one. --Tigerofdarkness (talk) 18:14, 31 August 2021 (UTC)

I have added three observations to the list above which remove the requirement for searching which I think may need explanation. For a given n identify a value g such that n+(g-1)+(g+1)=1000 (eg 3,498,499). The problem may be rewritten as n2=(g+x)2-(g-x)2. (g+x)2-(g-x)2 is 4xg. Therefore 4g must be a factor of n2, which implies that n is even. To determine x I divide n2 by 4g. Let me work this for n=200. g=400 {(1000-n)/2}. 4g=1600. 40,000/1600=25 so the solution is 200,400-25,400+25.--Nigel Galloway (talk) 14:06, 1 September 2021 (UTC)