স্কোয়ার পিরামিডাল সংখ্যা


28

A000330 - OEIS

কার্য

আপনার টাস্ক সহজ, একটা ক্রম যে সূচক দেওয়া উৎপন্ন i, যে অবস্থানে উপর মান থেকে বর্গের সমষ্টি 0পর্যন্ত iযেখানে i >= 0

উদাহরণ:

Input: 0
Output: 0           (0^2)

Input: 4
Output: 30          (0^2 + 1^2 + 2^2 + 3^2 + 4^2)

Input: 5
Output: 55          (0^2 + 1^2 + 2^2 + 3^2 + 4^2 + 5^2)

স্পেসিফিকেশন:

  • আপনি অনির্দিষ্টকালের জন্য কোনও ইনপুট এবং আউটপুট নাও নিতে পারেন;
  • আপনি অনুক্রমের উপাদানটি ইনপুট Nএবং আউটপুট নিতে পারেন Nth;
  • আপনি ক্রমের Nপ্রথম Nউপাদানগুলি ইনপুট এবং আউটপুট নিতে পারেন ।

2
ওইআইএসের মজাদার পর্যবেক্ষণ: এই ক্রমটিতে ঠিক দুটি সঠিক স্কোয়ার রয়েছে: f(1) == 1 * 1 (1)এবং f(24) == 70 * 70 (4900)
ডিজেএমসিএমহেম

আমরা কি অনুক্রম শুরু করতে পারি f(1) = 1?
Emigna

@ এমিগনা দুঃখিত তবে না, আপনার এটি থেকে শুরু করা দরকার f(0) = 0। আমি সেই প্রয়োজনীয়তার ব্যর্থ হওয়া কয়েকটি উত্তরের দিকে উল্লেখ করেছি
ফিলিপ নারদী বাতিস্তা

f(0) = 0প্রয়োজন আমার সমাধানের :( কয়েক ছারখার
ATaco

উত্তর:



22

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

lambda n:n*~n*~(n*2)/6

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

এটি ক্লোজড-ফর্মুলা এন * (এন + 1) * (2 * এন + 1) / 6 ব্যবহার করে । কোডটি নিম্নলিখিত ক্রিয়াকলাপ সম্পাদন করে:

  • গুণিতকের এন দ্বারা ( n*):

    • N ( ~n) এর বিটওয়াস পরিপূরক , যার মূল অর্থ -1-এন
    • এবং 2n ( *~(n*2)) এর বিটওয়াস পরিপূরক , যার অর্থ -1-2n
  • দ্বারা বিভাজিত 6 ( /6)।

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

f=lambda n:n and f(n-1)+n*n

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

সংরক্ষিত 1 বাইট ধন্যবাদ ডান্ডা এবং 1 ধন্যবাদ গিগাবাইট


1
এই খুব চালাক!
স্কাইলার


14

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

n=>n*(n+++n)*n/6

ডেমো

কিভাবে?

এক্সপ্রেশনটি (1)n+++n হিসাবে পার্স করা হয়েছে । এটি সত্যই গুরুত্বপূর্ণ নয় কারণ এই ক্ষেত্রেও কাজ করবে।n++ + nn + ++n

অতএব:

n*(n+++n)*n/6 =
n * (n + (n + 1)) * (n + 1) / 6 =
n * (2 * n + 1) * (n + 1) / 6

যা সমষ্টি (কে = 0 ... এন) (কে²) এর মূল্যায়ন করে


(1) এটি দিয়ে যাচাই করা যেতে পারে n='2';console.log(n+++n)যা পূর্ণসংখ্যা দেয় 5, যেখানে n + ++nস্ট্রিং দেয় '23'



6

মস্তিষ্ক-ফ্লাক , 36 বাইট

({<(({}[()])())>{({})({}[()])}{}}{})

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

# Main algorithm
(                                  )  # Push the sum of:
                {({})({}[()])}{}      #   The square of:
 {                              }     #     0 to i 

# Stuff for the loop
  <(({}[()])())>                      # Push i-1, i without counting it in the sum
                                 {}   # Pop the counter (0)

সুন্দরভাবে সম্পন্ন! :) আমি ({<(({}))>{({})({}[()])}{}<({}[()])>})38
DJMcMayhem


6

ব্রেন-ফ্লাক , 34 বাইট

({(({}[()])()){({}[()])({})}{}}{})

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

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

প্রথমদিকে আমার কাছে রাইলি 1 এর মত ধারণা ছিল তবে শূন্যপদ ব্যবহার করা ভুল বলে মনে হয়েছিল। আমি তখন বুঝতে পারি

{({}[()])({})}{}

N 2 - n গণনা করে ।

কেন? ভাল আমরা জানি

{({})({}[()])}{}

N 2 এবং লুপগুলি n বার গণনা করে । এর অর্থ আমরা যদি দুটি ধাক্কার ক্রমটি স্যুইচ করি তবে প্রতিবার যোগফলকে n + (n-1) দ্বারা বৃদ্ধি করে প্রতিটি সময় (n-1) + (n-1) দ্বারা প্রতিবার বাড়িয়ে তুলি। এটি ফলাফল প্রতি লুপে এক দ্বারা হ্রাস পাবে, এইভাবে আমাদের ফলাফলটি এন 2 - এন করবে। শীর্ষ স্তরে এটি ধাক্কা দিয়ে উত্পন্ন এন দিয়ে বাতিল করে যে আমরা শূন্যের প্রয়োজনীয়তা হ্রাস করে আমাদের দুটি বাইট সংরক্ষণ করছিলাম।

মস্তিষ্ক-ফ্লাক , 36 বাইট

({({})(({}[()])){({})({}[()])}{}}{})

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

এখানে আরও একটি সমাধান রয়েছে, এটি গোলাপ হিসাবে নয় তবে এটি বেশ আশ্চর্যজনক তাই আমি ভেবেছিলাম কীভাবে এটি কাজ করে তা নির্ধারণ করার জন্য আমি এটিকে চ্যালেঞ্জ হিসাবে ছেড়ে দেব।

আপনি যদি ব্রেইন-ফ্লাকের মধ্যে না থাকেন তবে আপনি এখনও চ্যালেঞ্জটি চান এটি একটি সংক্ষেপণ হিসাবে।

ছবি


1: আমি এখানে উত্তরগুলি দেখার আগে আমার সমাধানটি নিয়ে এসেছি। সুতরাং এখানে কোন চৌর্যবৃত্তি নেই।


আমি জানতাম এটি করার একটি উপায় থাকতে হবে, এবং আমার মনে হয়েছিল যে আপনি এটির জন্য গণিতটি বের করবেন।
রিলে



3

জাপট , 3 বাইট

ô²x

এখানে চেষ্টা করুন।

-1 শেগিকে ধন্যবাদ ।

ব্যাখ্যা:

ò²x 
ô²  Map square on [0..input]
  x Sum

এর জন্য শর্টকাট ব্যবহার করে 3 বাইটp2
রোমশ

@ ফিলিপনার্দিবাটিস্টা স্থির করেছেন
এরিক দি আউটগল্ফার

2

মস্তিষ্ক-ফ্লাক , 46 বাইট

{(({})[()])}{}{({({})({}[()])}{}<>)<>}<>({{}})

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



@ রিলে ওহ সুন্দর :)
হাইপারনিউটারিনো

বিকল্প স্ট্যাকের উপর বর্গক্ষেত্রকে চাপ দেওয়ার পরিবর্তে, আপনি মূল্যায়ন করে এবং এটির দিকে চাপ না দিয়ে সরাসরি এটি যোগ করতে পারেন, তার পরিবর্তে পুরো লুপটি চাপ দিয়ে। এটি আপনার দ্বিতীয় অর্ধেকে পরিবর্তন করে ({{({})({}[()])}{}}{})এবং আপনার 10 বাইট সংরক্ষণ করে। (যদি তা বোঝা যায় না, আমাকে তৃতীয়
স্তরে দাঁড় করিয়ে দিন

2

সিজেম , 10 বাইট

ri),{_*+}*

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

ri            e# Input integer n
  )           e# Add 1
   ,          e# Range [0 1 ... n]
    {   }*    e# Fold (reduce)
     _        e# Duplicate
      *       e# Multiply
       +      e# Add

কীভাবে ri),_.*:+বা ri),2f#:+?
মার্টিন ইন্ডার

@ মার্টিন ভাল ধারণা! আমি মনে করি আপনার এটি আলাদা উত্তর হিসাবে পোস্ট করা উচিত
লুইস মেন্ডো



2

এপিএল (ডায়ালগ) , 7 5 বাইট

2 মেগাবাইট @ মেগোকে ধন্যবাদ বাঁচিয়েছে

+.×⍨⍳

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

কিভাবে?

- পরিসীমা

+.× - বিন্দু পণ্য

- নিজেই


@ উরিল আমার খারাপ, আমি ভেবেছিলাম এটি ¨⍳প্রয়োজনীয় ছিল
ফিলিপ

2

আর, 17 বাইট

sum((0:scan())^2)

বেশ সহজবোধ্য, এটা সত্য যে থেকে সুবিধা নেয় ^(exponentiation) এ ভেক্টরকৃত হয় আর


1
(x=0:scan())%*%xবাইট দ্বারা সংক্ষিপ্ত, তবে আমি বিশ্বাস করি catআউটপুট পেতে আপনার একটি দরকার ।
জিউসেপ

@ জিউস্পেপ আমি স্রেফ এটি চেষ্টা করেছি এবং আপনার কোড ব্যতীত কাজ করে cat, এটি একটি 1x1 ম্যাট্রিক্সকে আউটপুট করে।
রুই ব্যারাদাস

@ রুইবারাদাস বর্তমান মেটা sensকমত্য এটির catজন্য একটি সম্পূর্ণ প্রোগ্রাম হিসাবে যোগ্যতা অর্জন করা প্রয়োজন। আপনি যদি এটি পরিবর্তন করতে চান তবে এই প্রশ্নের উত্তর দিন এবং সাইটে থাকা অন্য আর মানুষের মধ্যে কিছুটা ট্র্যাকশন পান।
জিউসেপ

2

সিজেম , 9 বাইট

ri),_.*:+

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

ব্যাখ্যা

ri        e# Read input and convert to integer N.
  ),      e# Get range [0 1 2 ... N].
    _     e# Duplicate.
     .*   e# Pairwise products, giving [0 1 4 ... N^2].
       :+ e# Sum.

বিকল্পভাবে:

ri),2f#:+

এই 2#জোড়া উপাদান ব্যবহার না করে ম্যাপিংয়ের মাধ্যমে প্রতিটি উপাদানকে স্কোয়ার করে । এবং কেবল মজাদার জন্য অন্য একটি বিকল্প যা বড় ইনপুটগুলির জন্য ভুল হয়ে যায় কারণ এটি ভাসমান-পয়েন্ট পাটিগণিত ব্যবহার করে:

ri),:mh2#

2

জুলিয়া , 16 14 বাইট

@ মার্টিনএেন্ডারকে ধন্যবাদ 2 বাইট সংরক্ষণ করা হয়েছে

!n=(x=1:n)⋅x

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

কিভাবে?

(x=1:n)একটি সীমার সৃষ্টি 1করতে nএবং দায়িত্ব অর্পণ করা x, সঙ্গে পণ্য বিন্দু x


2

ল্যাবরেথ , 11 বাইট

:!\
+ :
*:#

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

ক্রমটি অনির্দিষ্টকালের জন্য মুদ্রণ করে।

ব্যাখ্যা

নির্দেশিকা নির্দেশকটি কেবল বার বার কোডের স্কোয়ারের চারদিকে চলতে থাকে:

:!\    Duplicate the last result (initially zero), print it and a linefeed.
:      Duplicate the result again, which increases the stack depth.
#      Push the stack depth (used as a counter variable).
:*     Square it.
+      Add it to the running total.

2

কিউবিক্স , 15 বাইট

Iu):^\+*p*6u@O,

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

আমার কোডটি কিছুটা দুঃখজনক ):

নির্ণয় n*(n+1)*(2n+1)/6

    I u
    ) :
^ \ + * p * 6 u
@ O , . . . . .
    . .
    . .

^Iu : read in input, u-turn
    : stack  n
:)\ : dup, increment, go right..oh, hey, it cheered up!
    : stack: n, n+1
+   : sum
    : stack: n, n+1, 2*n+1
*   : multiply
    : stack: n, n+1, 2*n+1, (n+1)*(2*n+1)
p   : move bottom of stack to top
    : stack: n+1, 2*n+1, (n+1)*(2*n+1), n
*   : multiply
6   : push 6
u   : right u-turn
,   : divide
O   : output
@   : terminate





2

হেক্সাগনি , 23 বাইট

?'+)=:!@/*"*'6/{=+'+}/{

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

ব্যাখ্যা

দুচোখে:

   ? ' + )
  = : ! @ /
 * " * ' 6 /
{ = + ' + } /
 { . . . . .
  . . . . .
   . . . .

এটি সত্যিই কেবল একটি লিনিয়ার প্রোগ্রাম যা /কিছু পুনর্নির্দেশের জন্য ব্যবহৃত for লিনিয়ার কোডটি হ'ল:

?'+){=+'+}*"*'6{=:!@

কোন গণনা এন (এন + 1) (2 এন + 1) / 6 । এটি নিম্নলিখিত মেমরি প্রান্ত ব্যবহার করে:

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

যেখানে মেমরি পয়েন্ট (এমপি) প্রান্তে শুরু হয় এন লেবেলযুক্ত , উত্তরটি নির্দেশ করছে।

?   Read input into edge labelled 'n'.
'   Move MP backwards onto edge labelled 'n+1'.
+   Copy 'n' into 'n+1'.
)   Increment the value (so that it actually stores the value n+1).
{=  Move MP forwards onto edge labelled 'temp' and turn around to face
    edges 'n' and 'n+1'.
+   Add 'n' and 'n+1' into edge 'temp', so that it stores the value 2n+1.
'   Move MP backwards onto edge labelled '2n+1'.
+   Copy the value 2n+1 into this edge.
}   Move MP forwards onto 'temp' again.
*   Multiply 'n' and 'n+1' into edge 'temp', so that it stores the value
    n(n+1).
"   Move MP backwards onto edge labelled 'product'.
*   Multiply 'temp' and '2n+1' into edge 'product', so that it stores the
    value n(n+1)(2n+1).
'   Move MP backwards onto edge labelled '6'.
6   Store an actual 6 there.
{=  Move MP forwards onto edge labelled 'result' and turn around, so that
    the MP faces edges 'product' and '6'.
:   Divide 'product' by '6' into 'result', so that it stores the value
    n(n+1)(2n+1)/6, i.e. the actual result.
!   Print the result.
@   Terminate the program.

তাত্ত্বিকভাবে এই প্রোগ্রামটি পার্শ্ব-দৈর্ঘ্য 3 এ ফিট করা সম্ভব হতে পারে, কারণ /গণনাটির জন্য প্রয়োজন হয় না, :প্রোগ্রামটি শেষ করতে পুনরায় ব্যবহার করা যেতে পারে, এবং কিছু '"=+*{সংখ্যক পুনরায় ব্যবহারযোগ্য হতে পারে, প্রয়োজনীয় সংখ্যার সংখ্যা নিয়ে আসে bringing 19 এর নিচে কমান্ড (পাশের দৈর্ঘ্যের 3 জন্য সর্বোচ্চ)। আমি সন্দেহ করি যে হাত থেকে এই জাতীয় সমাধান পাওয়া সম্ভব যদিও একটির অস্তিত্ব থাকলে।


2

> <> , 15 13 11 বাইট

একটি গাছ নয় বলে 2 বাইট সংরক্ষণ করা হয়েছে

0:n:l1-:*+!

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

ক্রমটি অনির্দিষ্টকালের জন্য আউটপুট করে।


1
14 বাইট ( -vপতাকাটির জন্য 12 + 2 ): ::1+:}+**6,n( এটি অনলাইনে চেষ্টা করুন! )
গাছ নয়

1
বা 11 বাইট (চিরকালের জন্য প্রিন্ট করুন, থেকে শুরু করুনN=1 ): এটি অনলাইনে চেষ্টা করুন!
কোনও গাছ নয়

@ নোটাত্রি: ব্যবহার করে খুব সুন্দর ধারণা l
ওপিতে যাচাই করা

@ নোটাত্রি: দুর্ভাগ্যক্রমে আমাদের 1 থেকে শুরু করার অনুমতি নেই তবে এটি এখনও 2 বাইট সংরক্ষণ করে। ধন্যবাদ!
Emigna

1
(আমার উল্লেখ করা উচিত যে আমি lমার্টিন ইন্ডারের ল্যাবরেথ উত্তর থেকে ধারণাটি পেয়েছি ।)
একটি গাছ নয়

2

পাইথ , 7 5 বাইট স্টিভেন এইচ ধন্যবাদ

s^R2h

ব্যাখ্যা:

s^R2h       Full program - inputs from stdin and outputs to stdout
s           output the sum of
    h       range(input), with
 ^R2         each element squared

আমার প্রথম সমাধান

sm*ddUh

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

ব্যাখ্যা:

sm*ddUh    Full program - inputs from stdin and outputs to stdout
s          sum of
 m   Uh    each d in range(input)
  *dd      squared

পাইথের মধ্যে কোনও বর্গক্ষেত্র নির্মিত হয়নি?
কেয়ার্ড কোইনারিংহাহিং

যতদূর আমি জানি না ...
ডেভ

না পাইথের মধ্যে অন্তর্নির্মিত কোনও বর্গ নেই। এছাড়াও 6 বাইট
মিঃ Xcoder


প্রতিটি উত্তরের জন্য +1 বাইট সহ স্থিরযোগ্য, আমি মোবাইলটি বন্ধ হয়ে গেলে আমি সম্পাদনা করব।
ডেভ




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