ত্রিতাগোরীয় ট্রিপলস


16

একজন পিথাগোরাস ট্রিপল সমীকরণ করার জন্য একটি ধনাত্মক পূর্ণসংখ্যা সমাধান:

পাইথাগোরিয়ান ট্রিপল

ত্রিগোরিয়ান ট্রিপল সমীকরণের একটি ধনাত্মক পূর্ণ সমাধান:

ত্রিগোরিয়ান সমীকরণ

যেখানে then নবম ত্রিভুজাকার সংখ্যাটি খুঁজে পায় । সমস্ত ত্রিতাগোরীয় ট্রিপল সমীকরণের সমাধান:

এখানে চিত্র বর্ণনা লিখুন

কার্য

ধনাত্মক পূর্ণসংখ্যা দেওয়া c, ধনাত্মক পূর্ণসংখ্যার সমস্ত জোড় আউটপুট করুন a,bযাতে aতম এবং bত্রিভুজাকার সংখ্যার যোগফল হল cত্রিভুজাকার সংখ্যা। আপনি সবচেয়ে সুবিধাজনক যে কোনও উপায়ে জোড়গুলি আউটপুট করতে পারেন। আপনার কেবল প্রতিটি জোড়া একবার আউটপুট করা উচিত।

এটি

পরীক্ষার কেস

2: []
3: [(2, 2)]
21: [(17, 12), (20, 6)]
23: [(18, 14), (20, 11), (21, 9)]
78: [(56, 54), (62, 47), (69, 36), (75, 21), (77, 12)]
153: [(111, 105), (122, 92), (132, 77), (141, 59), (143, 54), (147, 42), (152, 17)]
496: [(377, 322), (397, 297), (405, 286), (427, 252), (458, 190), (469, 161), (472, 152), (476, 139), (484, 108), (493, 54), (495, 31)]
1081: [(783, 745), (814, 711), (836, 685), (865, 648), (931, 549), (954, 508), (979, 458), (989, 436), (998, 415), (1025, 343), (1026, 340), (1053, 244), (1066, 179), (1078, 80), (1080, 46)]
1978: [(1404, 1393), (1462, 1332), (1540, 1241), (1582, 1187), (1651, 1089), (1738, 944), (1745, 931), (1792, 837), (1826, 760), (1862, 667), (1890, 583), (1899, 553), (1917, 487), (1936, 405), (1943, 370), (1957, 287), (1969, 188)]
2628: [(1880, 1836), (1991, 1715), (2033, 1665), (2046, 1649), (2058, 1634), (2102, 1577), (2145, 1518), (2204, 1431), (2300, 1271), (2319, 1236), (2349, 1178), (2352, 1172), (2397, 1077), (2418, 1029), (2426, 1010), (2523, 735), (2547, 647), (2552, 627), (2564, 576), (2585, 473), (2597, 402), (2622, 177), (2627, 72)]
9271: [(6631, 6479), (6713, 6394), (6939, 6148), (7003, 6075), (7137, 5917), (7380, 5611), (7417, 5562), (7612, 5292), (7667, 5212), (7912, 4832), (7987, 4707), (8018, 4654), (8180, 4363), (8207, 4312), (8374, 3978), (8383, 3959), (8424, 3871), (8558, 3565), (8613, 3430), (8656, 3320), (8770, 3006), (8801, 2914), (8900, 2596), (8917, 2537), (9016, 2159), (9062, 1957), (9082, 1862), (9153, 1474), (9162, 1417), (9207, 1087), (9214, 1026), (9229, 881), (9260, 451), (9261, 430), (9265, 333)]

আমরা বার বার জোড়া আউটপুট করতে পারি? উদাহরণস্বরূপ, 21আউটপুট জন্য[(17, 12), (20, 6), (12, 17), (6, 20)]
লুইস মেন্ডো

7
আমি ভেবেছিলাম আপনি আমাদের সন্ধান করতে বলছেন a^3+ b^3 = c^3। : ডি
বিটা ক্ষয়

@ লুইস মেন্ডো নং। আমি এটিকে প্রশ্নের মধ্যে অন্তর্ভুক্ত করব।
পোস্ট রক গার্ফ হান্টার

3
@ বেটাডেকে এমএটিএল, 0 বাইট
লুইস মেন্ডো

3
@ এরিকথ আউটগল্ফারের a^3+ b^3 = c^3কোনও পূর্ণসংখ্যার সমাধান নেই বলে জানা গেছে; দেখতে ফের্মার শেষ উপপাদ্য
লুইস Mendo

উত্তর:


7

গণিত, 53 49 48 বাইট

Solve[{x.(x+1)==#^2+#,a>=b>0},x={a,b},Integers]&

উদাহরণ:

In[1]:= Solve[{x.(x+1)==#^2+#,a>=b>0},x={a,b},Integers]&[21]

Out[1]= {{a -> 17, b -> 12}, {a -> 20, b -> 6}}

ওহহ, সুন্দর ভেক্টরাইজেশন, আমি যা করতাম তার চেয়ে ভাল উপায়
গ্রেগ মার্টিন

6

এমএটিএল , 17 13 বাইট

:Ys&+G:s=R&fh

প্রতিটি জোড়া প্রথমে ছোট সংখ্যার সাথে আউটপুট হয়।

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

ইনপুট বিবেচনা করুন 3

:      % Implicitly input n. Push [1 2 ... n]
       % STACK: [1 2 3]
Ys     % Comulative sum
       % STACK: [1 3 6]
&+     % All pairwise sums
       % STACK: [2 4 7; 4 6 9; 7 9 12]
G:s    % Push 1+2+...+n
       % STACK: [2 4 7; 4 6 9; 7 9 12], 6
=      % Is equal?
       % STACK: [0 0 0; 0 1 0; 0 0 0]
R      % Upper triangular part of matrix. This removes duplicate pairs
       % STACK: [0 0 0; 0 1 0; 0 0 0]
&f     % Push row and column indices (1-based) of non-zero entries
       % STACK: 2, 2
h      % Concatenate horizontally. Implicitly display
       % STACK: [2, 2]

ব্যাখ্যা দয়া করে?
এরিক আউটগল্ফার

@ এরিকথ আউটগল্ফার অবশ্যই, আমি দিনের পরেই এটি যুক্ত করব
লুইস মেন্ডো

কেবলমাত্র আপনি অনন্য জোড়া আউটপুট নিশ্চিত করেছেন তা নিশ্চিত করুন mainly
এরিক আউটগলফার

@ এরিকথ আউটগল্ফার হ্যাঁ, তারা অনন্য (এটির Rযত্ন নেয়)
লুইস মেন্ডো

1
@ এরিকথ আউটগলফার ব্যাখ্যা যোগ করেছেন
লুই মেন্ডো

6

জেলি , 12 বাইট

j‘c2ḅ-
ŒċçÐḟ

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

ŒċçÐḟ   Main link. Argument: c

Œċ      Yield all 2-combinations w/repetition of elements of [1, ..., c].
  çÐḟ   Filterfalse; keep only 2-combinations for which the helper link returns 0.


j‘c2ḅ-  Helper link. Left argument: [a, b]. Right argument: c

j       Join [a, b] with separator c, yielding [a, c, b].
 ‘      Increment; yield [a+1, c+1, b+1].
  c2    Combination count; compute [C(a+1,c), C(c+1,c), C(b+1,c)], yielding
        [½a(a+1), ½c(c+1), ½b(b+1)].
    ḅ-  Convert from base -1 to integer, yielding
        ½(-1)²a(a+1) + ½(-1)¹c(c+1) + ½(-1)⁰b(b+1) = ½(a(a+1) - c(c+1) + b(b+1)),
        which is 0 if and only if a(a+1) + b(b+1) = c(c+1).

4

পাইথন 2, 69 বাইট

এটি অনলাইনে চেষ্টা করুন

lambda c:[(a,b)for a in range(c)for b in range(a+1)if~a*a==c*~c-~b*b]

-9 বাইটস, @ হোয়াইট উইজার্ডকে ধন্যবাদ


এবং ~a*a==c*~c-~b*bএটি থেকে একটি বাইট সংক্ষিপ্ত। এটি অনলাইন চেষ্টা করুন!
পোস্ট রক গার্ফ হান্টার 24'17

@ ওয়েট উইজার্ড ভাল জিনিস: ডি
ডেড

4

জেলি , 16 14 বাইট

RS
ŒċÇ€S$⁼¥ÐfÇ

এটি অনলাইন চেষ্টা করুন!

এটি নিশ্চিত করার জন্য এটি অনেক দীর্ঘ ...

ব্যাখ্যা:

ŒċÇ€S$⁼¥ÐfÇ (main) Arguments: z
Œċ             Return [[1, 1], [1, 2], ..., [1, z], [2, 2], ..., [z, z]]
          Ç    Return T(z)
  Ç€S$⁼¥Ðf     Only keep the pairs such as ΣT(a, b)=T(z)

RS (helper 1) Arguments: z
R  [1, 2, ..., z]
 S Take the sum

4

এডাব্লুকে , 72 বাইট

{for(n=$1;++i<=n;)for(j=i;j<=n;++j)if(i^2+j^2+i+j==n^2+n)$0=$0" "i":"j}1

এটি অনলাইন চেষ্টা করুন!

আউটপুট হয় c a1:b1 a2:b2 ...। টিআইও লিঙ্কটিতে মাল্টলাইন i=0;ইনপুট দেওয়ার জন্য 4 টি অতিরিক্ত বাইট রয়েছে ।

এটি মোটেই দক্ষ নয়, তবে এটি কার্যকর। :)





2

অ্যাক্সিয়াম, 281 204 196 191 বাইট

q(b,m)==(r:=1+4*m;v:=4.*b*(b+1);r<v=>0;(sqrt(r-v)-1)/2);g(c:NNI):Any==(r:List List INT:=[];i:=0;repeat(i:=i+1;i>=c=>break;w:=q(i,c^2+c);w>=i and fractionPart(w)=0=>(r:=cons([w::INT,i],r)));r)

পরীক্ষা এবং ungolf

-- if m=c^2+c than a^2+a+b^2+b-m=0 has the solutions [a,b] with a>0,b>0
-- if it is used a=(-1+sqrt(1+4*m-4*(b)*(b-1)))/2 because the other return a<0
-- o(b,m) return that solution if 1+4*m-4*(b)*(b-1)>0 [so exist in R sqrt] else return 0
o(b,m)==(r:=1+4*m;v:=4.*b*(b+1);r<v=>0;(sqrt(r-v)-1)/2)

--it Gets one not negative integer c; return one list of list(ordered) of 2 integers
--[a,b] with  a^2+a+b^2+b=c^2+c
gg(c:NNI):List List INT==
   r:List List INT:=[]  -- initialize the type make program more fast at last it seems 10x
   i:=0
   repeat
      i:=i+1
      i>=c=>break
      w:=o(i,c^2+c)
      w>=i and fractionPart(w)=0=>(r:=cons([w::INT,i],r))
   r

(6) -> [[i,g(i)]  for i in [2,3,21,23,78,153,496,1081,1978,2628,9271]]
   (6)
   [[2,[]], [3,[[2,2]]], [21,[[17,12],[20,6]]], [23,[[18,14],[20,11],[21,9]]],
    [78,[[56,54],[62,47],[69,36],[75,21],[77,12]]],
    [153,[[111,105],[122,92],[132,77],[141,59],[143,54],[147,42],[152,17]]],

     [496,
       [[377,322], [397,297], [405,286], [427,252], [458,190], [469,161],
        [472,152], [476,139], [484,108], [493,54], [495,31]]
       ]
     ,

     [1081,
       [[783,745], [814,711], [836,685], [865,648], [931,549], [954,508],
        [979,458], [989,436], [998,415], [1025,343], [1026,340], [1053,244],
        [1066,179], [1078,80], [1080,46]]
       ]
     ,

     [1978,
       [[1404,1393], [1462,1332], [1540,1241], [1582,1187], [1651,1089],
        [1738,944], [1745,931], [1792,837], [1826,760], [1862,667], [1890,583],
        [1899,553], [1917,487], [1936,405], [1943,370], [1957,287], [1969,188]]
       ]
     ,

     [2628,
       [[1880,1836], [1991,1715], [2033,1665], [2046,1649], [2058,1634],
        [2102,1577], [2145,1518], [2204,1431], [2300,1271], [2319,1236],
        [2349,1178], [2352,1172], [2397,1077], [2418,1029], [2426,1010],
        [2523,735], [2547,647], [2552,627], [2564,576], [2585,473], [2597,402],
        [2622,177], [2627,72]]
       ]
     ,

     [9271,
       [[6631,6479], [6713,6394], [6939,6148], [7003,6075], [7137,5917],
        [7380,5611], [7417,5562], [7612,5292], [7667,5212], [7912,4832],
        [7987,4707], [8018,4654], [8180,4363], [8207,4312], [8374,3978],
        [8383,3959], [8424,3871], [8558,3565], [8613,3430], [8656,3320],
        [8770,3006], [8801,2914], [8900,2596], [8917,2537], [9016,2159],
        [9062,1957], [9082,1862], [9153,1474], [9162,1417], [9207,1087],
        [9214,1026], [9229,881], [9260,451], [9261,430], [9265,333]]
       ]
     ]
                                                      Type: List List Any

1

সিজেম , 30 28 বাইট

{_,2m*:$_&f+{{_)*}%~+=},1f>}

বেনামে ব্লকটি স্ট্যাকের উপর তার যুক্তির প্রত্যাশা করে এবং ফলাফলটি স্ট্যাকের উপরে রেখে।

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

আমি ইনপুট হিসাবে উল্লেখ করব n

_,     e# Copy n, and get the range from 0 to n-1.
2m*    e# Get the 2nd Cartesian power of this range.
:$_&   e# Sort the pairs and deduplicate, to get all unique pairs.
f+     e# Prepend n to each pair.
{      e# Filter these triplets; keep only those that give a truthy result:
 {     e#  Map this block over the triplet:
  _)*  e#   Multiply x by x+1. (i.e. x^2 + x)
 }%    e#  (end map)
 ~+=   e#  Check if the sum of the second and third is equal to the first.
},     e# (end filter)
1f>    e# Remove the first element from all remaining triplets.


1

জাভাস্ক্রিপ্ট (ES6), 83 বাইট

c=>[...Array(c*c)].map((_,x)=>[x%c,x/c|0]).filter(([a,b])=>a>=b&a++*a+b++*b==c*c+c)

পরীক্ষার মামলা

স্নিপেটের জন্য খুব বেশি সময় নেয় এমন বৃহত্তম ইনপুটগুলি এখানে ছাড় দেওয়া হচ্ছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.