আমার অ্যারে এর সমান হওয়া উচিত, তবে এটি হয় না!


21

পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে aযাতে এন পূর্ণসংখ্যা এবং একটি একক পূর্ণসংখ্যা রয়েছে x; থেকে উপাদানের অল্পসংখ্যক পরিষেবা পরিমাণ অপসারণ aএর সমষ্টি করতে aসমান x। যদি কোনও সংমিশ্রণ aগঠন করতে না পারে তবে xএকটি মিথ্যা মানটি ফিরিয়ে দিন।

একটি মন্তব্যে নির্দেশিত হিসাবে এটি x এর যোগফল সহ সর্বাধিক সেট , আমার কম গণিতের মস্তিষ্ককে ক্ষমা করুন। আমি কলেজ থেকে প্রচুর পদ ভুলে গেছি।


উদাহরণ (সত্যবাদী):

f([1,2,3,4,5,6,7,8,9,10], 10) = [1,2,3,4]

f([2,2,2,2,2,2,2,2,2], 10) = [2,2,2,2,2]

f([2,2,2,2,-2,-2,-2,-4,-2], -8) = [2,2,-2,-2,-2,-4,-2]

f([-2,-4,-2], -6) = [-4,-2] OR [-2,-4]

f([2,2,2,4,2,-2,-2,-2,-4,-2], 0) = [2,2,2,4,2,-2,-2,-2,-4,-2] (অপরিবর্তিত)

f([], 0) = [] (অপরিবর্তিত জিরো-সম মামলা)


উদাহরণ (মিথ্যা, কোনও সামঞ্জস্যহীন অ-অ্যারে মান):

অসম্ভব কেস তৈরি করা: f([-2,4,6,-8], 3) = falsy (E.G. -1)

জিরো সাম মামলা: f([], non-zero number) = falsy (E.G. -1)

  • দ্রষ্টব্য: এর মতো কোনও মান [-1]মিথ্যাচারের জন্য বৈধ হতে পারে না, কারণ এটি একটি সম্ভাব্য সত্যবাদী আউটপুট।

নিয়মাবলী:

  • ইনপুট অ্যারে আকারে নেওয়া যেতে পারে, বা যুক্তিগুলির তালিকা হিসাবে, শেষ বা প্রথমটি x
  • আউটপুটটি পূর্ণসংখ্যার কোনও সীমিত তালিকা হতে পারে। ইজি 1\n2\n3\nবা [1,2,3]
  • পূর্ণসংখ্যার অ্যারের ব্যতীত কোনও মান মিথ্যা সূচক হিসাবে ব্যবহার করা যেতে পারে।
  • আপনার কোড অবশ্যই শেষ অ্যারের আকারকে সর্বাধিক করে তুলতে হবে, অর্ডার কোনও বিষয় নয়।
    • EG f([3,2,3],5)উভয়ের জন্য [2,3]এবং [3,2]সমানভাবে বৈধ।
    • EG এর জন্য f([1,1,2],2)আপনি কেবল সংক্ষিপ্ত [1,1]হিসাবে ফিরতে পারবেন [2]
  • যোগফল aএবং এর মান উভয়ই এর xচেয়ে কম 2^32-1এবং বেশি হবে -2^32-1
  • এটি , সর্বনিম্ন বাইট-কাউন্ট জেতা।
  • যদি একই আকারের একাধিক সাববারি বৈধ হয় তবে সেগুলি সমস্ত আউটপুট গ্রহণযোগ্য নয় । আপনাকে অবশ্যই একটি একক বেছে নিতে হবে এবং এটির একটি আউটপুট।

এটি পোস্ট করা হয়েছে কিনা তা আমাকে জানান, আমি এটি খুঁজে পাইনি।

পোস্টগুলি আমি এর মতো পেয়েছি : সম্পর্কিত তবে বন্ধ , ...


1
আমি মনে করি "মিথ্যা, কোনও নিয়মিত নন-অ্যারে মান" এর মধ্যে ত্রুটি বাড়ানো অন্তর্ভুক্ত রয়েছে?
জোনাথন অ্যালান

" পূর্ণসংখ্যার অ্যারের ব্যতীত কোনও মান মিথ্যা সূচক হিসাবে ব্যবহার করা যেতে পারে " "এর মধ্যে কি খালি অ্যারে অন্তর্ভুক্ত?
শেগি

@ Shaggy [] একটি সম্ভাব্য সত্যবাদী মানের সূচক, তাই না? সেই মেটা বিধিটিকে পৃথক সত্যবাদী এবং মিথ্যা বলার চেয়ে আরও গুরুত্বপূর্ণ কী?
ম্যাজিক অক্টোপাস উরন

@ জোনাথন অ্যালান যদি সেই ত্রুটিটি সত্যবাদী দৃশ্যে উত্থাপন না করা যায় তবে আমি মনে করি। তবে আমি অনুভব করি এটি ইচ্ছাকৃতভাবে অনুমানটিকে প্রসারিত করার চেষ্টা করছে। আমি যদি সূচক থেকে শব্দটি পরিবর্তন করে মান ফেরত দেব তবে তা কি ঠিক আছে?
ম্যাজিক অক্টোপাস উরন

আমি বিশ্বাস করি যে সামঞ্জস্যগত প্রস্থান মানগুলি মেটা পিছু হলেও রিটার্ন মান হিসাবে গণনা করে?
ম্যাজিক অক্টোপাস উরন

উত্তর:


7

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

h⊇.+~t?∧

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

মাসিক ব্র্যাচল্যাগ উত্তর। false.সম্ভব না হলে ফিরে আসে ।

ব্যাখ্যা

h⊇.           The output is a subset of the head of the input
  .+~t?       The sum of the elements of the output must equal the tail of the input
       ∧      (Avoid implicit unification between the output and the input)

6

পাইথন 2 , 108 104 বাইট

lambda a,n:[x for l in range(len(a)+1)for x in combinations(a,l)if sum(x)==n][-1]
from itertools import*

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

-4 বাইট, জোনাথন অ্যালানকে ধন্যবাদ


পাইথন 2 , 108 106 বাইট

def f(a,n):
 q=[a]
 while q:
  x=q.pop(0);q+=[x[:i]+x[i+1:]for i in range(len(x))]
  if sum(x)==n:return x

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

-২ বাইটস, জননাথ ফ্রেঞ্চকে ধন্যবাদ


1
আপনি 2 টি সংরক্ষণ করতে range(-len(a),1)এবং ব্যবহার করতে পারেন -l, তবে lambda a,n:[x for l in range(len(a)+1)for x in combinations(a,l)if sum(x)==n][-1]4 টি সঞ্চয় করেন
জোনাথন অ্যালান


1
সম্ভাব্য 106 বাইট
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ ধন্যবাদ, আমি গতকাল অবশ্যই ক্লান্ত হয়ে পড়েছি;)
টিফিল্ড



4

পাইথ , 8 বাইট

  • 8-বাইটার ( এটি চেষ্টা করুন! ) - কেবলমাত্র একটি সম্ভাব্য সমাধান আউটপুট দেয়। অবিশ্বাস্য ইনপুটগুলির জন্য, এটি STDOUT- তে কোনও কিছুই মুদ্রণ করে না, যা খালি স্ট্রিং, যা পাইথের মধ্যে প্রযুক্তিগতভাবে মিথ্যা কথা বলছে, তবে এসটিডিআরআর-কে লিখেছে। FryAmTheEggman এটির পরামর্শ দেওয়ার জন্য ধন্যবাদ (STDERR উপেক্ষা করে কেবলমাত্র STDOUT আউটপুটকে কেন্দ্র করে), এভাবে 1 বাইট সংরক্ষণ করুন।

    efqz`sTy    
    
  • 9-বাইটার ( এটি ব্যবহার করে দেখুন! ) - কেবলমাত্র একটি সম্ভাব্য সমাধান আউটপুট দেয়, ডিফল্টরূপে অনুমোদিত হিসাবে একটি একক তালিকায় আবৃত (যেমন ([1...10], 10) -> [[1,2,3,4]]; ([], 0) -> [[]])। অবিশ্বাস্য ইনপুটগুলির জন্য, এটি ফিরে আসে [], যা পাইথের মধ্যে মিথ্যা

    >1fqz`sTy
    
  • 10-বাইটার ( এটি ব্যবহার করে দেখুন! ) - একক-তালিকা নিয়ম ব্যবহার 0না করে এবং []মিথ্যা মান হিসাবে ব্যবহার না করে একটি পরিষ্কার আউটপুটের জন্য ।

    e+0fqz`sTy
    

ব্যাখ্যা

প্রথমে কোড ইনপুট তালিকার পাওয়ারসেটটি গণনা করে (এর সমস্ত সম্ভাব্য অর্ডারযুক্ত উপ-সংগ্রহ)। তারপরে, এটি কেবলমাত্র তাদের সংগ্রহগুলি রাখে যার সমষ্টি ইনপুট সংখ্যার সমান। এটি লক্ষ করা উচিত যে সংগ্রহগুলি সংক্ষিপ্ত থেকে দীর্ঘতম পর্যন্ত উত্পাদিত হয়, তাই আমরা শেষটির দিকে মনোনিবেশ করি। এটি পেতে:

  • 8-byter কেবল ব্যবহার শেষ বিল্ট-ইন, যা একটি ত্রুটি ছোঁড়া কিন্তু stderr আমাদের সাইটে নিয়ম অনুযায়ী, stdout- এ আউটপুট একটি খালি স্ট্রিং, যা falsy হচ্ছে উপেক্ষা করা যাবে।
  • 9-byter শেষ উপাদান নেয়, কিন্তু সমতুল্য পাইথন কোড ব্যবহার lst[-1:]স্থানে lst[-1]অসমাধানযোগ্য ইনপুট জন্য নিক্ষিপ্ত হওয়া থেকে এড়ানোর ত্রুটির।
  • 10 byter prepends একটি 0 ফিল্টার উপ-সংগ্রহের তালিকায়, তাহলে সেই সংগ্রহ (শেষ উপাদান) শেষে লাগে। যদি ইনপুটগুলি দ্রবণযোগ্য না হয় তবে 0 এর পরিবর্তে প্রাকৃতিকভাবে ব্যবহৃত হয়।

[]মিথ্যা হয়? ঝরঝরে। পাইথ কেন এটি করে []?
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস ইউরান পাইথ পাইথন থেকে উত্তরাধিকার সূত্রে পেয়েছে : অনলাইনে চেষ্টা করে দেখুন
মিঃ এক্সকডার

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

@ ফ্রাইআম দ্য এজম্যান আপনার পরামর্শের জন্য ধন্যবাদ! আমি প্রয়োজনীয় পরিবর্তনগুলি করেছি :)
মিঃ এক্সকোডার


3

পার্ল 6 , 38 37 বাইট

{*.combinations.grep(*.sum==$_).tail}

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

কার্ড ফাংশন।


অপেক্ষা করুন, ;এমনকি প্রয়োজনীয়?
জো কিং

@ জোকিং একটি "ত্রুটিযুক্ত দ্বিগুণ বন্ধ" ত্রুটি এড়াতে এটি পূর্বের পুনরাবৃত্তিতে প্রয়োজনীয় ছিল। তবে কিছু কারণে এটি এখন বাদ দেওয়া যেতে পারে। (আমার $^xসাথে প্রতিস্থাপনের পরে আমি মনে করি $_))
nwellnhof

3

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

⟨⊇+⟩

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

খুব কম সংক্ষিপ্ত h⊇.+~t?∧বাদে ফ্যাটালাইজের সমতুল্য , ভবিষ্যদ্বাণীপূর্ণ রচনা বৈশিষ্ট্যের জন্য ধন্যবাদ যা রেফারেন্সের সম্পাদনার ইতিহাস অনুসারে ৮ ই জানুয়ারী পর্যন্ত কাজ চলছিল, উত্তরটি দুই মাসেরও বেশি সময় পরে পোস্ট করার পরে। একটি হল স্যান্ডউইচ , এর বিস্তৃত , যেখানে ধনুর্বন্ধনী অপ্রাসঙ্গিক এই ক্ষেত্রে হিসাবে স্যান্ডউইচ কোন উপায়ে নিজস্ব লাইন চালু আছে।⟨⊇+⟩{[I,J]∧I⊇.+J∧}

                The input
[I,J]           is a list of two elements I and J.
        .       The output,
         +J     which sums to J
           ∧    (which we don't unify with the output),
      I⊇        is a sublist of I
     ∧          (which we don't unify with [I,J]).

ফ্যাটালাইজের উত্তরের একটি খুব কম নাটকীয় রূপান্তর, যা একই ভেরিয়েবলগুলির সাথে একই পূর্বাভাস ব্যবহার করে তবে আলাদাভাবে সংগঠিত হতে একটি বাইট সংক্ষিপ্ত আকারে আসে:

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

h⊇.&t~+

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

           The input
h          's first element
 ⊇         is a superlist of
  .        the output,
   &       and the input
    t      's last item
     ~+    is the sum of the elements of
           the output.

(এছাড়াও, কেউ যদি অদ্ভুত কিছু দেখতে চান তবে পরীক্ষার ক্ষেত্রে আন্ডারস্কোরগুলির কোনও হাইফেনে পরিবর্তন করুন))


1
স্যান্ডউইচ হয়েছে নভেম্বর 2018 সালে @ ais523 দ্বারা বাস্তবায়িত কিন্তু শুধুমাত্র গোড়ার দিকে জানুয়ারী 2019. মধ্যে Brachylog টানা হয়েছে
Fatalize

1
অবশ্যই, ইতিহাস-খননের কোনও বিষয়ই নয়, যেহেতু চ্যালেঞ্জ পরবর্তী পোস্টের ভাষাগুলি বছরের পর বছর ধরে অনুমোদিত।
পিপ্পারি




2

এটি শীতল এবং ছোট শুরু হয়েছিল, তবে প্রান্তের মামলাগুলি আমাকে পেয়েছে। যাই ঘটুক না কেন, আমি এতে যে কাজটি করেছি তাতে আমি গর্বিত।

পাইথন 3 , 169 161 154 বাইট

from itertools import*
def f(a,x):
	if sum(a)==x:return a
	try:return[c for i in range(len(a))for c in combinations(a,i)if sum(c)==x][-1]
	except:return 0

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


মনে রাখবেন এটি [কোড-গল্ফ] তাই আপনার বাইট গণনা যতটা সম্ভব ছোট করার চেষ্টা করা উচিত! আপনার কাছে একটি শীর্ষস্থানীয় নিউলাইন এবং অন্যান্য কিছু তুচ্ছ সাদা সাদা গল্ফ রয়েছে এবং আমি বাজি ধরি যে পাইথন জানে এমন অন্য কেউ এটিকে আরও নীচে গল্ফ দিতে পারে।
জিউসেপ

@ জিউসেপ্প নেতৃস্থানীয় সাদা স্থানের কথা মনে করিয়ে দেওয়ার জন্য আপনাকে ধন্যবাদ। আমি এর কিছু অংশ একীভূত করার চেষ্টা করে কিছুটা সময় ব্যয় করেছি, তবে অন্য কেউ সম্পাদনার পরামর্শ দিতে পারে সেদিকেই এটি পোস্ট করার সিদ্ধান্ত নিয়েছি।
গিগাফ্লপ

কোন সমস্যা নেই! 5 টির মতো হয়েছে যেহেতু আমি কোনও পাইথন করেছি, কিন্তু range(x)জেনারেট করে না (0...x-1)? সুতরাং আপনি আপনার range(len(a))অ্যারে অপরিবর্তিত রাখার সম্ভাবনা দিচ্ছেন না?
জিউস্পে

@ জিউসেপ ইউরেকা, এটি করেছে। আমি যে নতুন উপাদানের সাথে কাজ করছিলাম তাতে আমি খুব বেশি মনোযোগ দিচ্ছি।
গিগাফ্লপ

পরিবর্তে if a==[] and x==0ব্যবহার if sum(a)==x। তারপর আপনি অপসারণ করতে পারেন +1থেকে range
বেদন্ত কান্দোই

2

আর , 100 80 বাইট

function(a,x){i[sum(a|1):0,j[combn(a,i,,F),if(sum(j)==x)return(j)]]
F}
`[`=`for`

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

20 বাইট ডিগএমএলকে ধন্যবাদ সংরক্ষণ করেছে saved

FALSEঅসম্ভব মানদণ্ডের জন্য ফিরে আসে ।



@ ডিজিম সবই আমি অবশ্যই আনন্দিত যে আমি আপনার 98 বাইট উত্তরটিতে সম্পাদনা করার সুযোগ পেলাম না :-)
জিউসেপ

এটিকে এটি মুছতে ভুলে গেছেন: ডি
ডিগএম সব

1

সংযুক্তি , 28 বাইট

${(y&`=@Sum\Radiations@x)@0}

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

বিকল্প

34 বাইট :f[x,y]:=({y=Sum@_}\Radiations@x)@0

30 বাইট :First@${y&`=@Sum\Radiations@x}

29 বাইট :{(_&`=@Sum\_2)@0}#/Radiations

29 বাইট :${({y=Sum@_}\Radiations@x)@0}

29 বাইট :`@&0@${y&`=@Sum\Radiations@x}

29 বাইট :{_}@@${y&`=@Sum\Radiations@x}

ব্যাখ্যা

${(y&`=@Sum\Radiations@x)@0}
${                         }    function receiving two arguments, x and y
            Radiations@x        calculate the radiations of x
                                (simulates removing all possible subslices of x)
           \                    keep those radiations
        Sum                     ...whose sum...
     `=@                        ...equals...
   y&                           ...y
  (                     )@0     select the first one (always the longest)

0

এপিএল (এনএআরএস), 65 টি চর, 130 বাইট

{m←⍺=+/¨v←1↓{0=⍴⍵:⊂⍬⋄s,(⊂1⌷⍵),¨s←∇1↓⍵}⍵⋄0=↑⍴b←m/v:⍬⋄b⊃⍨n⍳⌈/n←⍴¨b}

↓ ব্যবহৃত হয় কারণ সেটগুলির সেটগুলির প্রথম উপাদানটি একটি অকার্যকর সেট হবে (এখানে ⍬ জিল্ড), যেটি একে অপসারণ করতে চায় কারণ মনে হয় এটি + / zero শূন্য ...

সন্ধান না করার জন্য বা ত্রুটি এটি ফিরে আসবে ⍬ বা মুদ্রণ পাঠ্যে:

  o←⎕fmt
  o ⍬
┌0─┐
│ 0│
└~─┘

পরীক্ষা:

  z←{m←⍺=+/¨v←1↓{0=⍴⍵:⊂⍬⋄s,(⊂1⌷⍵),¨s←∇1↓⍵}⍵⋄0=↑⍴b←m/v:⍬⋄b⊃⍨n⍳⌈/n←⍴¨b}

  o 1 z ,1
┌1─┐
│ 1│
└~─┘
  o 2 z ,1
┌0─┐
│ 0│
└~─┘
  o 10 z 1 2 3 4 5 6 7 8 9 10
┌4───────┐
│ 1 2 3 4│
└~───────┘
  o 10 z 2,2,2,2,2,2,2,2,2
┌5─────────┐
│ 2 2 2 2 2│
└~─────────┘
  o ¯8 z 2,2,2,2,¯2,¯2,¯2,¯4,¯2
┌7──────────────────┐
│ 2 2 ¯2 ¯2 ¯2 ¯4 ¯2│
└~──────────────────┘
  o ¯6 z ¯2,¯4,¯2
┌2─────┐
│ ¯4 ¯2│
└~─────┘
  o 0 z 2,2,2,4,2,¯2,¯2,¯2,¯4,¯2
┌10───────────────────────┐
│ 2 2 2 4 2 ¯2 ¯2 ¯2 ¯4 ¯2│
└~────────────────────────┘
  o 10 z 1 2 3 4
┌4───────┐
│ 1 2 3 4│
└~───────┘
  o 10 z 1 2 3
┌0─┐
│ 0│
└~─┘
  o 0 z ⍬
┌0─┐
│ 0│
└~─┘
  o +/⍬  
0
~
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.