বর্গের অঙ্ক হিসাবে সংখ্যা লেখার কতটি উপায়?


12

কার্য

দুটি পূর্ণসংখ্যা দেওয়া dএবং n, স্কোয়ারের nযোগফল হিসাবে প্রকাশ করার উপায়গুলির সন্ধান করুন d। এটি হ'ল, n == r_1 ^2 + r_2 ^2 + ... + r_d ^2এটি r_mসমস্ত পূর্ণসংখ্যার জন্য একটি পূর্ণসংখ্যা 1 ≤ m ≤ d। নোট করুন যে দুটি ভিন্ন মান (যেমন r_1এবং r_2) অদলবদলকে মূল সমাধান থেকে পৃথক হিসাবে বিবেচনা করা হয়।

উদাহরণস্বরূপ, 45 নম্বরটি 2 স্কোয়ারের 8 হিসাবে বিভিন্ন উপায়ে যোগ করা যেতে পারে:

45
== (-6)^2 + (-3)^2
== (-6)^2 + 3^2
== (-3)^2 + (-6)^2
== (-3)^2 + 6^2
== 3^2 + (-6)^2
== 3^2 + 6^2
== 6^2 + (-3)^2
== 6^2 + 3^2

বিধি

  • অন্তর্নির্মিত সমাধানগুলি অনুমোদিত তবে অ-প্রতিযোগিতামূলক (আহেম, ম্যাথমেটিকা )
  • স্ট্যান্ডার্ড লুফোলগুলিও নিষিদ্ধ।
  • ইনপুটগুলি বিপরীত হতে পারে।

উদাহরণ I / O

In:   d, n

In:   1, 0
Out:  1

In:   1, 2
Out:  0

In:   2, 2
Out:  4

In:   2, 45
Out:  8

In:   3, 17
Out:  48

In:   4, 1000
Out:  3744

In:   5, 404
Out:  71440

In:   11, 20
Out:  7217144

In:   22, 333
Out:  1357996551483704981475000

এটি , তাই সাবমিশনগুলি সর্বনিম্ন বাইট ব্যবহার করে জিতে!


কেন ডিলিট করলেন এই এবং একটি নতুন পোস্ট আপনি পোস্ট আপনি মুছে সম্পাদনা করতে পারেন যখন?
ফাঁস নুন

@ ল্যাকিয়ুনুন আমার ব্রাউজারটি মুছে ফেলার আগেও আমি এডিট করার চেষ্টা করার সময় ত্রুটি ছুঁড়েছি।
জাংহওয়ান মিন


1
না, n 0, d নয়।
ফুটো নুন

1
@DeadPossum জন্য 1, 0পরীক্ষা মামলা, আছে 1প্রকাশ করার উপায় 0একটি সমষ্টি হিসাবে 1বর্গ: 0 == 0^2
জংহওয়ান মিন

উত্তর:



5

ম্যাথমেটিকা, 8 বাইট, অ-প্রতিযোগিতামূলক

SquaresR

3
এটি যেমন প্রয়োজন ছিল ... প্রশ্নে নতুন কিছু যুক্ত করে না। : পি
এরিক আউটগল্ফার

@ এরিকথঅটগলফার প্রশ্নটিকে দোষারোপ করুন; এটি স্পষ্টতই এটির অনুমোদিত states
জলি জোকার

সেই মুহুর্তগুলিতে যেখানে অন্তর্নির্মিত সমাধানগুলি বিল্ট-ইন সমাধানগুলিকে প্রায় বীট করে: ডি
ডেভিড মুলদার

@ জলি জোকার আমার বক্তব্য, উত্তরের প্রশ্নে কিছু যুক্ত করা উচিত , অন্যথায় কেন সেগুলি পোস্ট করে? *
শ্রাগ

@ ডেভিড মুল্ডার প্রথম প্রথম "প্রায়" মিস হয়ে গেলাম এবং কিছুটা হতবাক হয়ে গিয়েছিলাম ...
এরিক দ্য আউটগল্ফার

5

জেলি , 9 বাইট

Nr⁸²ṗS€ċ⁸

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

নেয় nএবং dএই ক্রমে।


শেষ টেস্টকেসের জন্য এটি কত বছর সময় নিতে পারে?
লিকি নুন

@ লিক্যনুন আমি জানি না, এটা আমার বোধগম্যতার বাইরে ...
এরিক দ্য আউটগল্ফার

4

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

y_t_&:Z^U!s=s

ইনপুট হয় n, তারপর d। কিছু পরীক্ষার কেস স্মৃতিশক্তি হারিয়েছে।

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

ব্যাখ্যা

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

y     % Implicit inputs. Duplicate from below
      % STACK: 17, 3, 17
_     % Negate
      % STACK: 17, 3, -17
t_    % Duplicate. Negate
      % STACK: 17, 3, -17, 17
&:    % Two-input range
      % STACK: 17, 3, [-17 -16 ... 17]
Z^    % Cartesian power. Gives a matrix where each Cartesian tuple is a row
      % STACK: 17, [-17 -17 -17; -17 -17 -16; ...; 17 17 17]
U     % Square, element-wise
      % STACK: 17, [289 289 289; 289 289 256; ...; 289 289 289]
!s    % Transpose. Sum of each column
      % STACK: 17, [867 834 ... 867]
=     % Equals?, element-wise
      % STACK: 17, [0 0 ... 0] (there are 48 entries equal to 1 in between)
s     % Sum. Implicit display
      % STACK: 48

3

হাস্কেল , 43 বাইট

0#0=1
d#n=sum[(d-1)#(n-k*k)|d>0,k<-[-n..n]]

শুধু আপনার বেসিক পুনরাবৃত্তি। একটি বাইনারি ইনফিক্স ফাংশন সংজ্ঞায়িত করে #এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

0#0=1            -- If n == d == 0, give 1.
d#n=             -- Otherwise,
 sum[            -- give the sum of
  (d-1)#(n-k*k)  -- these numbers
  |d>0,          -- where d is positive
   k<-[-n..n]]   -- and k is between -n and n.

যদি d == 0এবং n /= 0, আমরা দ্বিতীয় ক্ষেত্রে আছি, এবং শর্তটি d>0তালিকাটি খালি রাখে। খালি তালিকার যোগফল 0, যা এই ক্ষেত্রে সঠিক ফলাফল।



2

05 এ বি 1 ই , 10 বাইট

Ð(Ÿ²ã€nOQO

যুক্তিগুলি n হিসাবে গ্রহণ করে, তারপর d। বড় পরীক্ষার কেস সমাধান করতে সমস্যা আছে।

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

ব্যাখ্যা

Ð(Ÿ²ã€nOQO   Arguments n, d
Ð            Triplicate n on stack
 (           Negate n
  Ÿ          Range: [-n ... n]
   ²ã        Caertesian product of length d
     €n      Square each number
       OQ    Sum of pair equals n
         O   Total sum (number of ones)


2

গণিত, 38 বাইট

Count[Tr/@Tuples[Range[-#,#]^2,#2],#]&

বিশুদ্ধ ফাংশন অনুক্রমে ইনপুট গ্রহণ n, dRange[-#,#]^2গণনা সঠিক করতে দু'বার তালিকাভুক্ত ধনাত্মক স্কোয়ার সহ সমস্ত সম্ভাব্য প্রাসঙ্গিক স্কোয়ারের সেট দেয়; Tuples[...,#2]এই dজাতীয় স্কোয়ার-টিপলস উত্পাদন করে ; Tr/@প্রতিটি- dটুপলে যোগফল; এবং Count[...,#]ফলাফলগুলির মধ্যে কতটি সমান তা গণনা করে n

প্রথম কয়েকটি পরীক্ষার মামলাগুলি দ্রুত সমাপ্ত হয়, তবে আমি অনুমান করি যে পরীক্ষার ক্ষেত্রে এটি চালাতে প্রায় অর্ধেক বছর সময় লাগবে 1000,4। প্রতিস্থাপন করা হচ্ছে Range[-#,#](আর কিন্তু) আরো যুক্তিসম্মত দ্বারা Range[-Floor@Sqrt@#,Floor@Sqrt@#]13 সেকেন্ড সম্পর্কে যে গণনার দ্রুত সম্পন্ন করা।



1

পাইথন 2, 138

আমার প্রিয় eval সঙ্গে খুব অকার্যকর সমাধান। কেন না?
এটি অনলাইনে চেষ্টা করুন

lambda n,d:d and 4*eval(eval("('len({('+'i%s,'*d+'0)'+'for i%s in range(n)'*d+'if '+'i%s**2+'*d+'0==n})')%"+`tuple(range(d)*3)`),locals())

এটি এর মতো কোড উত্পন্ন এবং মূল্যায়ন করে:

len({(i0,i1,0)for i0 in range(n)for i1 in range(n)if i0**2+i1**2+0==n})

সুতরাং কিছু বড় ডি এর জন্য এটি খুব দীর্ঘ সময় চলবে এবং প্রচুর স্মৃতি গ্রহণ করবে, ও এর জটিলতা থাকবে (n ^ d)



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