হাইপারকিউব উপাদান


19

এমন একটি ফাংশন বা প্রোগ্রাম লিখুন যা একটি এন-ডাইমেনশনাল হাইপারক्यूबের প্রতিটি ধরণের উপাদান (ভারটেক্স, প্রান্ত, চেহারা, ইত্যাদি) এর চেয়ে বেশি করে দেয়।

উদাহরণস্বরূপ, ত্রি-মাত্রিক ঘনক্ষেত্রে 1 টি সেল (অর্থাত্ 1 ত্রি-মাত্রিক ঘনক্ষেত্র), 6 টি মুখ (অর্থাত্ 6 দ্বিমাত্রিক কিউব), 12 প্রান্ত (অর্থাৎ 12 দ্বিমাত্রিক কিউব) এবং 8 টি শীর্ষ (যেমন 8 0-মাত্রিক) রয়েছে কিউব)।

হাইপারকিউব উপাদান সম্পর্কে আরও বিশদ এখানে পাওয়া যাবে

আপনি নীচের ওএআইএস ক্রমটি একবার দেখে নিতে পারেন ।

ইনপুট

আপনার কোড ইনপুট হিসাবে গ্রহণ করবে (STDIN বা একটি ফাংশন প্যারামিটার বা অনুরূপ জিনিসগুলির মাধ্যমে) একটি পূর্ণসংখ্যা বৃহত্তর বা 0 এর সমান, যা হাইপারক्यूबের মাত্রা।

আপনার কোডটি তাত্ত্বিকভাবে কোনও ইনপুট> = 0 এর জন্য কাজ করতে হবে, মেমরি এবং সময় সম্পর্কিত বিষয়গুলি উপেক্ষা করে (এটি হ'ল গতি এবং সম্ভাব্য স্ট্যাক ওভারফ্লোগুলি আপনার উত্তরের জন্য কোনও সমস্যা নয় যদি ইনপুটটি বড় হয়)। পরীক্ষার কেস হিসাবে প্রদত্ত ইনপুটগুলি 12 এর উপরে হবে না।

আউটপুট

আপনি হাইপারকিউবের সমস্ত উপাদানগুলির একটি তালিকা আউটপুট করে "সর্বোচ্চ মাত্রা" উপাদানটি দিয়ে শুরু করবেন। উদাহরণস্বরূপ, একটি ঘনক্ষেত্রের জন্য (ইনপুট = 3), আপনি তালিকাটি আউটপুট করবেন [1,6,12,8](1 সেল, 6 টি মুখ, 12 প্রান্ত, 8 টি শীর্ষে )।

আউটপুটে তালিকার ফর্ম্যাটটি অপেক্ষাকৃত বিনামূল্যে, যতক্ষণ না এটি তালিকার মতো দেখায়।

আপনি ফলাফলটি STDOUT এ আউটপুট করতে পারেন বা কোনও ফাংশন থেকে এটি ফিরিয়ে দিতে পারেন।

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

Input = 0
Output = [1]

Input = 1
Output = [1,2]

Input = 3
Output = [1,6,12,8]

Input = 10
Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024]

Input = 12
Output = [1, 24, 264, 1760, 7920, 25344, 59136, 101376, 126720, 112640, 67584, 24576, 4096]

স্কোরিং

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins

উত্তর:


10

সামউ , 8 5 বাইট

সংরক্ষিত 3 ধন্যবাদ বাইট ডেনিস

▌2\$ⁿ

হেক্স ডাম্প (সামাউ সিপি 737 এনকোডিং ব্যবহার করে):

dd 32 2f 24 fc

ব্যাখ্যা:

▌        read a number
 2\      push the array [1 2]
   $     swap
    ⁿ    take the convolution power

দুটি ভেক্টরকে কনভলভ করা দু'টি বহুভুজের গুণকের সমতুল্য । একইভাবে, এন-থ্রি কনভলিউশন শক্তি গ্রহণ করা একটি বহুপথের এন-থ শক্তি গ্রহণের সমতুল্য।


11

জে, 13 বাইট

[:p.2&^;$&_.5

@ আলেফাল্ফের PARI / GP উত্তর দ্বারা অনুপ্রাণিত । এটি J.js এর সাথে অনলাইনে ব্যবহার করে দেখুন

পটভূমি

দ্বিপদী উপপাদ্য দ্বারা,

সূত্র

সুতরাং, ইনপুট এন এর আউটপুট উপরের বহুভুজের সহগগুলির সাথে স্পষ্টভাবে গঠিত।

কোড

[:p.2&^;$&_.5  Monadic verb. Argument: n

        $&_.5  Yield an array of n instances of -0.5.
    2&^        Compute 2^n.
       ;       Link the results to the left and right.
               This specifies a polynomial of n roots (all -0.5)
               with leading term 2^n.  
[:p.           Convert from roots to coefficients.

10

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

1i:"2:X+

@ আলেফাল্ফের PARI / GP উত্তর দ্বারা অনুপ্রাণিত ।

এটি অনলাইন চেষ্টা করুন! ( Y+আধুনিক দিনের এমএটিএল ব্যবহার করে )

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

1        % Push 1.
 i:      % Push [1 ... input].
   "     % Begin for-each loop:
    2:   %   Push [1 2].
      X+ %   Take the convolution product of the bottom-most stack item and [1 2].

5
আমার প্রথম এমএটিএল উত্তর।
ডেনিস

এবং একটি দুর্দান্ত এক! এটি এমনই সম্মানের যে আপনি এই ভাষাটি ব্যবহার করেছেন :-)
লুইস মেন্ডো

1
সুন্দর। সবাই এখন এমএটিএল ব্যান্ডওয়াগনে ঝাঁপিয়ে পড়া শুরু করছে!
রায়রিং - মনিকা

@ রাইরিং আমরা আপনাকে মিস করছি :-)
লুইস মেন্ডো


8

গণিত, 29 বাইট

CoefficientList[(1+2x)^#,x]&

আমার প্রথম গণিতের উত্তর! এটি একটি খাঁটি ফাংশন যা আলেফাল্ফার PARI / GP উত্তর হিসাবে একই পন্থা ব্যবহার করে । আমরা বহুভুজটি নির্মাণ করি (1+2x)^nএবং আরোহী শক্তির ক্রম অনুসারে (যেমন ধ্রুবক প্রথম) ক্রমের সহগের তালিকা পাই।

ব্যবহারের উদাহরণ:

> F := CoefficientList[(1+2x)^#,x]&`
> F[10]
{1,20,180,960,3360,8064,13440,15360,11520,5120,1024}

6

এপিএল, 15 11 বাইট

1,(2*⍳)×⍳!⊢

এটি একটি মোনাডিক ফাংশন ট্রেন যা ডানদিকে একটি পূর্ণসংখ্যা গ্রহণ করে এবং পূর্ণসংখ্যার অ্যারে প্রদান করে।

ব্যাখ্যা, ইনপুট কল n:

        ⍳!⊢  ⍝ Get n choose m for each m from 1 to n
       ×     ⍝ Multiply elementwise by
  (2*⍳)      ⍝ 2^m for m from 1 to n
1,           ⍝ Tack 1 onto the front to cover the m=0 case

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

ডেনিসের জন্য 4 টি বাইট সংরক্ষণ করা!



5

জেলি, 8 বাইট

0rð2*×c@

আমার ফোনে জেলি লেখা বন্ধ করা উচিত।

0r            Helper link. Input is n, inclusive range from 0 to n. Call the result r.
  ð           Start a new, dyadic link. Input is r, n.
   2*         Vectorized 2 to the power of r
     ×c@      Vectorized multiply by n nCr r. @ switches argument order.

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


4

টিআই-বেসিক, 10 বাইট

3^Ansbinompdf(Ans,2/3

আমি মনে করি এটি আরও আকর্ষণীয় সমাধানগুলির মধ্যে একটি। আমি কখনই ভাবতাম কিনা জানি না binompdf
ফিনোটপিপি

4

সিজেএম ( 17 14 বাইট)

ri_3@#_2+@#\b`

অনলাইন ডেমো

এই পদ্ধতির সাধারণ উত্পাদক ফাংশন ব্যবহার করে (x + 2)^n। ওইআইএস উল্লেখ করেছে (2x + 1)^n, কিন্তু এই প্রশ্নটি বিপরীত ক্রমের সহগকে সূচক করে। আমি পিএআরআই / জিপি উত্তরটিতে আলাফালফের আপডেটটি না দেখে যতক্ষণ না পেরেছি ততক্ষণে আমি জিএফটিকে বিপরীত করার চিন্তা না করে নিজেকে লাথি মারছি।

এই উত্তরের আকর্ষণীয় কৌশলটি হ'ল কোনও সম্ভাব্য সহগের চেয়ে উচ্চতর বেসে পরিচালনা করে বহুপদী শক্তি পরিচালনার জন্য পূর্ণসংখ্যার শক্তি ব্যবহার করা। সাধারণভাবে, এমন একটি বহুপদী প্রদত্ত, p(x)যার গুণাগুণগুলি সমস্ত অ-নেতিবাচক পূর্ণসংখ্যার চেয়ে কম হয় b, এটি সহগের p(b)একটি বেস- bউপস্থাপনা (কারণ স্বতন্ত্র মোমোনালগুলি "ওভারল্যাপ" করে না)। স্পষ্টতই সহগগুলি (x + 2)^nহবে যা ইতিবাচক পূর্ণসংখ্যা এবং যা যোগফল 3^n, তাই তাদের প্রত্যেকটি স্বতন্ত্রভাবে কম হবে 3^n

ri     e# Read an integer n from stdin
_3@#   e# Push 3^n to the stack
_2+    e# Duplicate and add 2, giving a base-3^n representation of x+2
@#     e# Raise to the power of n
\b`    e# Convert into a vector of base-3^n digits and format for output

বিকল্প পদ্ধতি: 17 বাইটে at

1a{0X$2f*+.+}ri*`

অনলাইন ডেমো

অথবা

1a{0X$+_]:.+}ri*`

অনলাইন ডেমো

উভয়ই অফসেট-এবং-দ্বিগুণ সারি (পাস্কেলের ত্রিভুজের মানক ম্যানুয়াল নির্মাণের অনুরূপ স্টাইলে) দিয়ে পূর্ববর্তী সারিটি সংশ্লেষ করে কাজ করে।

বহুবর্ষীয় শক্তি পরিচালনার জন্য কার্টেসিয়ান শক্তিগুলি (পূর্ণসংখ্যার শক্তির বিপরীতে) ব্যবহার করে একটি "প্রত্যক্ষ" পদ্ধতি 24 বাইটে আসে:

2,rim*{1b_0a*2@#+}%z1fb`

যেখানে মানচিত্রটি, অস্বাভাবিকভাবে, এত জটিল যে এটি ব্যবহারের %চেয়ে কম খাটো f:

2,rim*1fb_0af*2@f#.+z1fb`

3

ES6, 71 বাইট

n=>[...Array(n+1)].fill(n).map(b=(n,i)=>!i?1:i>n?0:b(--n,i-1)*2+b(n,i))

সাধারণ পুনরাবৃত্তির সূত্র। প্রতিটি হাইপারক्यूबটি পূর্বের হাইপারকিউব 1 ইউনিটটিকে নবম মাত্রার মধ্য দিয়ে সরানো হয়েছিল। এর অর্থ হ'ল এম-ডাইমেনশনাল অবজেক্টগুলি ইউনিটের শুরু এবং শেষে নকল করা হয়েছে, তবে (এম -1)-মাত্রিক বস্তুগুলি একটি অতিরিক্ত মাত্রা অর্জন করে, এম-ডাইমেনশনাল অবজেক্টগুলিতে রূপান্তরিত করে। অন্য কথায় c(n, m) = c(n - 1, m) * 2 + c(n - 1, m - 1),। (প্রকৃত জমাটি প্যারামিটারগুলিকে বিপরীত করে যাতে সূত্রটি কাঙ্ক্ষিত ক্রমে সরিয়ে দেয়।)

সুকৌশলে, fillপারবেন map, রিকার্সিভ ফাংশন সঠিক আর্গুমেন্ট প্রদান আমাকে 6 বাইট সংরক্ষণ।


3

পাইথ, 10 9 বাইট

.<L.cQdhQ

সবাই এনসিআর অ্যালগরিদম ব্যবহার করে বলে মনে হচ্ছে।


এল-ম্যাপটি একটি বাইট সংরক্ষণ করে:.<L.cQdhQ
31:51

2

05AB1E , 9 বাইট

কোড:

WƒNoZNc*,

ব্যাখ্যা:

W          # Push input and store in Z
 ƒ         # For N in range(0, input + 1)
  No       # Compute 2**N
    ZNc    # Compute Z nCr N
       *   # Multiply
        ,  # Pop and print

সিপি-1252 এনকোডিং ব্যবহার করে।


2

জুলিয়া, 31 বাইট

n->[2^m*binomial(n,m)for m=0:n]

এটি একটি ল্যাম্বদা ফাংশন যা একটি পূর্ণসংখ্যা গ্রহণ করে এবং একটি পূর্ণসংখ্যার অ্যারে প্রদান করে। এটি কল করতে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করুন।

ইনপুট এন থেকে 0 পর্যন্ত প্রতিটি মিটারের জন্য , আমরা প্যারেন্ট এন- ডাইমেনশনাল হাইপারকিউনের সীমানায় ( n - m )-মাত্রিক হাইপারকিউবেসগুলি গণনা করি । উইকিপিডিয়ায় সূত্র ব্যবহার করে, এটি কেবল 2 মি * বেছে ( এন , এম ) চয়ন করুন। এম = 0 এর ক্ষেত্রে এন- কিউব নিজেই বোঝায় তাই ইনপুট নির্বিশেষে 1 দিয়ে আউটপুট শুরু হয়। প্রান্তগুলি m = n দ্বারা দেওয়া হয় , m = n - 1 ইত্যাদি দ্বারা শীর্ষে দেওয়া হয় are


1

রুবি, রেভ বি 57 বাইট

->n{a=[1]+[0]*n
(n*n).downto(n){|i|a[1+j=i%n]+=2*a[j]}
a}

পূর্ববর্তী রেভ প্রতিটি সময় অ্যারের ব্যবহৃত অংশের মাধ্যমে কেবল স্ক্যান করে। এই পুনরাবৃত্তি প্রতিটি পুনরাবৃত্তির পুরো অ্যারে স্ক্যান করে। এটি ধীর, তবে এটি বাইট সংরক্ষণ করে। আরও একটি বাইট 2 টি কাজ করতে 1 লুপ ব্যবহার করে সংরক্ষণ করা হয়।

রুবি, রেভ এ 61 বাইট

->n{a=[1]+[0]*n
n.times{|i|i.downto(0){|j|a[j+1]+=2*a[j]}}
a}

একটি বিন্দু দিয়ে শুরু হয় এবং পুনরাবৃত্তভাবে পরবর্তী মাত্রা তৈরি করে

প্রতিটি পুনরাবৃত্তিতে প্রতিটি বিদ্যমান উপাদান মাত্রিকতায় বৃদ্ধি পায় এবং এর মূল মাত্রিক মাত্রার 2 টি নতুন উপাদান উত্পন্ন করে। উদাহরণস্বরূপ, অনুভূমিক সমতলের বর্গক্ষেত্রের জন্য যা ঘনক্ষেত্রে পরিণত হওয়ার জন্য উল্লম্বভাবে প্রসারিত:

1 টি মুখ ঘন হয়ে যায় এবং 1 জোড়া মুখ উত্পন্ন করে (1 টি উপরে, 1 নীচে)

4 টি প্রান্তটি মুখোমুখি হয়ে 4 জোড়া প্রান্ত তৈরি করে (4 উপরে, 4 নীচে)

4 টি উল্লম্বটি প্রান্তে পরিণত হয় এবং 4 জোড়া শীর্ষ কোণ তৈরি করে (4 উপরে, 4 নীচে)

পরীক্ষা প্রোগ্রামে অসম্পূর্ণ

f=->n{a=[1]+[0]*n                  #make an array with the inital point and space for other dimensions
  n.times{|i|                      #iteratively expand dimension by dimension 
    i.downto(0){|j|a[j+1]+=2*a[j]} #iterating downwards (to avoid interferences) add the 2 new elements generated by each existing element.
  }
a}                                 #return the array

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