সমতা ত্রিতে আসে


11

থেকে নেওয়া: OEIS- A071816

আপনার টাস্কের উপরের সীমাটি দেওয়া হচ্ছে n, সমীকরণকে সন্তুষ্ট করার মতো সমাধানের সংখ্যা খুঁজে পাওয়া:

a+b+c = x+y+z, where 0 <= a,b,c,x,y,z < n

ক্রমটি OEIS পৃষ্ঠায় বর্ণিত হিসাবে এবং নীচে (1-সূচিত) হিসাবে শুরু হবে:

1, 20, 141, 580, 1751, 4332, 9331, 18152, 32661, 55252, 88913, 137292, 204763, 296492, 418503, 577744, 782153, 1040724, 1363573, 1762004, 2248575, 2837164, 3543035, 4382904, 5375005, 6539156, 7896825, 9471196, 11287235, 13371756

কারণ n = 1, শুধুমাত্র একটি সমাধান রয়েছে:(0,0,0,0,0,0)

জন্য n = 2, সেখানে 20 আদেশ সমাধান আছে (a,b,c,x,y,z)করতে a+b+c = x+y+z:

(0,0,0,0,0,0), (0,0,1,0,0,1), (0,0,1,0,1,0), (0,0,1,1,0,0), (0,1,0,0,0,1), 
(0,1,0,0,1,0), (0,1,0,1,0,0), (0,1,1,0,1,1), (0,1,1,1,0,1), (0,1,1,1,1,0), 
(1,0,0,0,0,1), (1,0,0,0,1,0), (1,0,0,1,0,0), (1,0,1,0,1,1), (1,0,1,1,0,1), 
(1,0,1,1,1,0), (1,1,0,0,1,1), (1,1,0,1,0,1), (1,1,0,1,1,0), (1,1,1,1,1,1).

আমি এবং ও

  • ইনপুটটি একটি একক পূর্ণসংখ্যা চিহ্নিতকরণ n
  • আউটপুট হল একটি একক পূর্ণসংখ্যা / স্ট্রিং ডিনোটিং f(n), যেখানে f(...)উপরের ফাংশনটি রয়েছে।
  • সূচকটি ঠিক যেমন বর্ণিত হয়েছে, অন্য কোনও সূচক গ্রহণযোগ্য নয়।

এটি , সর্বনিম্ন বাইট-কাউন্ট জেতা।


আহ আহ ক্রেপ্প, আমি ওইআইএসের সরাসরি সূত্রটি লক্ষ্য করিনি, আমি ভেবেছিলাম এটি এত সহজ হবে না । ওহ ভাল, আমি সেই সমীকরণের প্রত্যক্ষ বন্দর +1 করছি না; পি।
ম্যাজিক অক্টোপাস উরন

1
কমপক্ষে সূত্রটি পুরোপুরি গল্ফ করা হয়নি: P
fəˈnɛtɪk

তারপরে আবার এটি ইজিও-ল্যাংসের বিপক্ষে রেজি-ল্যাঙ্গসকে একটি সুযোগ দেয়।
যাদু অক্টোপাস উরন

শিরোনামটি "সমতা ত্রিগুণে আসে" হলে কি আরও ভাল হবে?
লিকি নুন

উত্তর:


11

জেলি , 9 6 বাইট

ṗ6ḅ-ċ0

ও (এন 6 ) সমাধান।

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

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

ṗ6ḅ-ċ0  Main link. Argument: n

ṗ6      Cartesian power 6; build all 6-tuples (a, x, b, y, c, z) of integers in
        [1, ..., n]. The challenge spec mentions [0, ..., n-1], but since there
        are three summands on each side, this doesn't matter.
  ḅ-    Unbase -1; convert each tuple from base -1 to integer, mapping (a, ..., z)
        to a(-1)**5 + x(-1)**4 + b(-1)**3 + y(-1)**2 + c(-1)**1 + z(-1)**0, i.e.,
        to -a + x - b + y - c + z = (x + y + z) - (a + b + c). This yields 0 if and
        only if the 6-tuple is a match.
    ċ0  Count the number of zeroes.

হা! তাত্ত্বিক উত্তরগুলি পছন্দ করতে হবে (তাত্ত্বিক উত্তরের জন্য আমার ভিত্তি এখন এটি টি এর বৃহত মানের জন্য চালিত হয় , এটি সম্ভবত খারাপ)। আমি O(n^6)যদিও কিছুটা দেখার আশা করছিলাম : পি।
যাদু অক্টোপাস উরন

9

গণিত 17 বা 76 বাইট

সূত্র ব্যবহার:

.55#^5+#^3/4+#/5&

(@ গ্রেগমার্টিন এবং @ এনজেনিসিস প্রতি 3 বাইট সংরক্ষিত)

সূত্রটি ব্যবহার করার পরিবর্তে, আমি এখানে আক্ষরিকভাবে সমস্ত সমাধানগুলি গণনা করে এগুলি গণনা করি।

Length@Solve[a+b+c==x+y+z&&And@@Table[(0<=i<#),{i,{a,b,c,x,y,z}}],Integers]&

2
অ-নিষ্ঠুর-শক্তি উপায় পোস্ট করার জন্য ধন্যবাদ :)। কোনও গণিতের উত্তরের জন্য +1 যা কোনও সমীকরণ বা অন্তর্নির্মিত নয়।
যাদু অক্টোপাস উরন

এই উত্তর হিসাবে , আপনি একটি দ্বিগুণ বাইট সঞ্চয় 11/20দ্বারা প্রতিস্থাপন করতে পারেন .55
গ্রেগ মার্টিন

প্রথম শব্দটিতে আপনারও নক্ষত্রের দরকার নেই।
নেজেনিসিস

8

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

এটি লেখার আগে আমি সূত্রটি লক্ষ্য করিনি, সুতরাং এটি অবশ্যই স্বল্পতম (বা দ্রুততম) সাধারণ পদ্ধতি নয়, তবে আমি ভেবেছিলাম এটি সুন্দর।

f n=sum[1|0<-foldr1(-)<$>pure[1..n]`mapM`[1..6]]

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

f nএর থেকে 6 টি উপাদানের সমস্ত তালিকা তৈরি করে [1..n], তারপরে যার বিকল্প যোগফল 0 হয় তার একটিকে গণনা করে a+b+c==d+e+fএবং একই সাথে এটি একই সত্যটি ব্যবহার করে a-(d-(b-(e-(c-f))))==0এবং আমরা সমস্ত সংখ্যায় 1 যোগ করলেও তাতে কিছু আসে যায় না তা বিবেচনা করে।


আমি লক্ষ্য করেছি যে, প্রায়শই, সংক্ষিপ্ত উত্তরটি সর্বনিম্ন চিত্তাকর্ষক;)। এটি ভাড়ার একটি দুর্দান্ত ব্যবহার যা আমি এই উত্তরটি দেখার আগে বিবেচনা করব না।
যাদু অক্টোপাস উরন

6

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

l6:"G:gY+]X>

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

ব্যাখ্যা

আমি আবারও কনভলিউশন ব্যবহারের সুযোগটি মিস করতে পারি না!

এটি OEIS থেকে নিম্নলিখিত বৈশিষ্ট্য ব্যবহার করে:

a(n) = largest coefficient of (1+...+x^(n-1))^6

এবং অবশ্যই বহুপদী গুণ হ'ল সংশ্লেষ।

l        % Push 1
6:"      % Do the following 6 times
  G:g    %   Push a vector of n ones, where n is the input
  Y+     %   Convolution
]        % End
X>       % Maximum

5

জেলি , 9 বাইট

ṗ3S€ĠL€²S

@ ডেনিসের মতো সংক্ষিপ্ত নয়, তবে এটি ইনপুটটির জন্য 20 সেকেন্ডের মধ্যে শেষ হয় 100

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

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

ṗ3S€ĠL€²S  Main link. Argument: n

ṗ3         Cartesian power; yield all subsets of [1, ..., n] of length 3.
  S€       Sum each. 
    Ġ      Group indices by their values; for each unique sum S, list all indices whose
           values are equal to S.
     L€    Length each; for each unique sum S, yield the number of items in the original
           array that sum to S.
       ²   Square each; for each unique sum S, yield the number of pairs that both sum to S.
        S  Sum; yield the total number of equal pairs.

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

@ কারাসোকম্পুটিংয়ের ব্যাখ্যাটি শেষ হয়েছে। আপনার যদি এখনও কোন প্রশ্ন থাকে তবে আমাকে জানতে দিন :-)
ETH প্রোডাকশনগুলি

আশ্চর্যজনক, আমি বেশিরভাগ বর্বর-প্রয়োগ বাস্তবায়নের সুনির্দিষ্ট উত্তরগুলির অপ্টিমাইজেশনে বিভ্রান্ত হয়ে পড়েছি যা আমি আপনাকে ছেলেরা পোস্ট করতে দেখি; তবে আমি মনে করি প্রতিটি ব্যাখ্যা একটি ধাপ কাছাকাছি আপনাকে ধন্যবাদ!
যাদু অক্টোপাস উরন

5

পাইথ, 13 12 বাইট

JsM^UQ3s/LJJ

লিকি নুনকে ধন্যবাদ একটি বাইট সংরক্ষণ করা হয়েছে।

ব্যাখ্যা

JsM^UQ3s/LJJ
   ^UQ3         Get all triples in the range.
JsM             Save the sums as J.
        /LJJ    Count occurrences of each element of J in J.
       s        Take the sum.

সরাসরি সূত্র ব্যবহার না করার জন্য +1: পি।
ম্যাজিক অক্টোপাস উরন

আপনি অনলাইন দোভাষীর একটি লিঙ্ক পোস্ট করতে পছন্দ করতে পারেন ।
লিকি নুন

এছাড়াও, আপনি এর /LJJপরিবর্তে ব্যবহার করতে পারেন m/JdJ
লিকি নুন


2

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

:Prompt X
:.05X(11X^4+5X²+4

ওইআইএস সূত্রটি মূল্যায়ন করে।


1
আপনি এখানে বাইটগুলি কীভাবে গণনা করছেন? Prompt x= 2 বাইট?
ম্যাজিক অক্টোপাস উরন


1
কিন্ডা দু: খিত যে আমি এর আগে 5 বার একটি টিআই-বেসিক উত্তর পোস্ট করেছি এবং এখনই আমার ইতিহাসের সন্ধানের সাথে এটি সঠিকভাবে স্কোর করতে পারেনি _
যাদু অক্টোপাস উরান

2

ওসিস , 17 বাইট

5m11*n3m5*nz++20÷

5                   n 5             implicit n for illustration
 m                  n**5
  11                n**5 11
    *               11*n**5
     n              11*n**5 n
      3             11*n**5 n 3
       m            11*n**5 n**3
        5           11*n**5 n**3 5
         *          11*n**5 5*n**3
          n         11*n**5 5*n**3 n
           z        11*n**5 5*n**3 4*n
            +       11*n**5 5*n**3+4*n
             +      11*n**5+5*n**3+4*n
              20    11*n**5+5*n**3+4*n 20
                ÷  (11*n**5+5*n**3+4*n)÷20

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

ওএসিস হ'ল স্ট্যাক-ভিত্তিক ভাষা যা পুনরাবৃত্ত ক্রমগুলির জন্য অনুকূলিত হয়। তবে, এই ক্ষেত্রে পুনরাবৃত্তির সূত্রটি খুব দীর্ঘ।


2

ব্র্যাচল্যাগ , 17 বাইট

{>ℕ|↰}ᶠ⁶ḍD+ᵐ=∧D≜ᶜ

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

ব্যাখ্যা

{  |↰}ᶠ⁶           Generate a list of 6 variables [A,B,C,D,E,F]...
 >ℕ                  ...which are all in the interval [0, Input)
        ḍD         Dichotomize; D = [[A,B,C],[D,E,F]]
          +ᵐ=      A + B + C must be equal to D + E + F
             ∧
              D≜ᶜ  Count the number of possible ways you can label the elements of D while
                     satisfying the constraints they have

আমার অনুমানটি স্বয়ংক্রিয়ভাবে আসবে
লিকি নুন

@ ল্যাকিয়ুন আপনি নিজের দ্বারা চালাতে পারবেন না , এটি একটি রূপক icate
ফ্যাটালাইজ করুন

তবুও যদি এটি কোনও তালিকায় ব্যবহার করা হয়, তবে সেই তালিকাটি লেবেলিং করে ডিফল্ট প্রাকটিকেট করা যায়, না?
মাদুর

@ ম্যাট এটি সেভাবে তৈরি করা যেতে পারে তবে এখনই আপনি কোনও ভেরিয়েবলের উপর কোনও মেটাপ্রডিকেট ব্যবহার করতে পারবেন না।
এটিকে চূড়ান্ত করুন

1

জাভাস্ক্রিপ্ট, 24 বাইট

x=>11*x**5/20+x**3/4+x/5

OEIS পৃষ্ঠা থেকে সূত্র ব্যবহার করে।

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


আমি মনে করি আপনি দুটি বাইট সংরক্ষণ করতে পারবেনx=>x**5*.55+x**3/4+x/5
ETH প্রোডাকশনগুলি

আমি এইচটি প্রডাকশনগুলিতে ভাসমান পয়েন্ট ত্রুটি আছে যদি আমি * 11/20 এর পরিবর্তে * .55 ব্যবহার করি
fəˈnɛtɪk


1

পাইথন 2.7, 109 105 99 96 বাইট

কয়েকটি বাইট সংরক্ষণের জন্য ETH প্রডাকশন এবং ডেনিসকে ধন্যবাদ:

from itertools import*
lambda s:sum(sum(x[:3])==sum(x[3:])for x in product(range(s),repeat=6))

আকর্ষণীয়, পাইথন 3 এর কি 2.7 এর চেয়ে কম পরিসরের কাজ নেই?
যাদু অক্টোপাস উরন

sum(sum(x[:3])==sum(x[3:])for x ...)আরও খাটো হবে। এছাড়াও, from itertools import*একটি বাইট সংরক্ষণ করে।
ডেনিস

আপনার আগে জায়গার দরকার নেই for। এছাড়াও, আমাদের ডিফল্টরূপে ফাংশনগুলির নামকরণ করার প্রয়োজন নেই, যাতে আপনি মুছে ফেলতে পারেন h=
ডেনিস

1

গণিত, 52 বাইট

কেলি লোডারের ওইআইএস সূত্রটি বাস্তবায়নের উপায়টি আরও খাটো, তবে এটি সরাসরি সংখ্যাকে গণনা করে:

Count[Tr/@#~Partition~3&/@Range@#~Tuples~6,{n_,n_}]&

ঠিক আছে, এটি আসলে সমাধানগুলির সংখ্যা গণনা করে 1 <= a,b,c,x,y,z <= n। এটি একই সংখ্যা, যেহেতু সমস্ত ভেরিয়েবলগুলিতে 1 যুক্ত করা সমতা পরিবর্তন করে না।

ব্যাখ্যা: Range@#~Tuples~6ছয়টি পূর্ণসংখ্যার সমস্ত তালিকা 1 এবং n এর মধ্যে তৈরি করে, #~Partition~3&/@প্রতিটি তালিকা 3 দৈর্ঘ্যের দুটি তালিকায় বিভক্ত করে, Tr/@এই সাবলিস্টগুলি যোগ করে এবং Count[...,{n_,n_}]কত জোড়ের সমষ্টি যোগ করে তা গণনা করে। আমি খুব ভাগ্যবান পেয়েছি এর মধ্যে প্রাধান্যের ক্রম দিয়ে f @, f /@এবং ~f~!


1

অক্টাভা , 41 বাইট

@(n)round(max(ifft(fft(~~(1:n),n^2).^6)))

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

আমার এমএটিএল উত্তরের অনুরূপ , তবে fftপর্যাপ্ত সংখ্যক পয়েন্ট ( n^2) সহ একটি পৃথক ফুরিয়ার ট্রান্সফর্ম ( ) এর মাধ্যমে কনভলিউশনটি গণনা করে । ~~(1:n)এর সংক্ষিপ্ত সংস্করণ হিসাবে ব্যবহৃত হয় ones(1,n)roundভাসমান পয়েন্ট ত্রুটির কারণে প্রয়োজনীয়।


0

সিজেম , 17 বাইট

ri,6m*{3/::+:=},,

ইনপুট 11Tio আউট সময়, এবং 12এবং উচ্চতর মেমরি রান আউট।

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

ব্যাখ্যা

ri                e# Read an int from input.
  ,               e# Generate the range 0 ... input-1.
   6m*            e# Take the 6th Cartesian power of the range.
      {           e# Keep only the sets of 6 values where:
       3/         e#  The set split into (two) chunks of 3
         ::+:=    e#  Have the sums of both chunks equal.
              },  e# (end of filter)
                , e# Get the length of the resulting list.

0

Clojure, 79 বাইট

#(count(for[r[(range %)]a r b r c r x r y r z r :when(=(+ a b c)(+ x y z))]1))

কোডে পুনরাবৃত্তির পরিমাণ, বৃহত্তর সংখ্যক ভেরিয়েবলের উপর একটি ম্যাক্রো সংক্ষিপ্ত হতে পারে।

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