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


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, d। Range[-#,#]^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.