এক্স + ওয়াই = জেড - তবে কোন বেসে?


20

চ্যালেঞ্জ

3 নম্বর দেওয়া X, Yএবং Zবেস মধ্যে Bএকটি এটি BASE যার ছাড়াও Xএবং Yউৎপাদনের Z। ইনপুটগুলি x = 20, Y = 12এবং Z = 32ফলন করতে পারে 5কারণ 20 + 12 = 32বেস 5 এ।

  • আপনি ধরে নিতে পারেন যে সেখানে সর্বদা একটি বেস থাকবে যেখানে সংযোজনটি সঠিক হবে (এমন কিছু ঘটনা রয়েছে যেখানে কোনও বেসের উপস্থিতি নেই, @ ম্যাসনওহিলার এবং @ যে চার্লস এর কয়েকটি উদাহরণের জন্য ধন্যবাদ নয় ) এর জন্য ধন্যবাদ।
  • সর্বনিম্ন সম্ভাব্য বেসটি হ'ল আপনি আনারিতে 1s বা 0 গুলি অঙ্ক হিসাবে ব্যবহার করতে পারেন তবে আপনি সেগুলি মেশাতে পারবেন না।

ইনপুট / আউটপুট

  • ইনপুট সংখ্যার অঙ্কগুলি অ-নেতিবাচক পূর্ণসংখ্যা হবে।
  • আপনি ধরে নিতে পারেন যে ইনপুট সংখ্যায় নেতৃস্থানীয় শূন্য রয়েছে, সুতরাং এর নির্দিষ্ট (বা সমস্ত একই) দৈর্ঘ্য রয়েছে।
  • আপনি সংখ্যাটি সবচেয়ে সুবিধাজনক ফর্ম্যাটে নিতে পারেন, যতক্ষণ না এটি প্রস্রোসেস না করা হয়। এর মধ্যে তিনটি ইনপুট সংখ্যার সামগ্রিক বিন্যাস এবং সেই সংখ্যার প্রত্যেকটির অঙ্কের বিন্যাস অন্তর্ভুক্ত রয়েছে। আপনি কোন ফর্ম্যাটটি ব্যবহার করেন তা দয়া করে পরিষ্কার করুন।
  • যদি একাধিক সম্ভাব্য ঘাঁটি থাকে তবে আপনি সমস্ত বা কেবল একটির আউটপুট নিতে পারেন।
  • আপনি ধরে নিতে পারেন যে বেস এবং ইনপুট নম্বরগুলি আপনার ভাষার সংখ্যার সীমাতে থাকবে।

বিধি

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

এখানে ইনপুট ফর্ম্যাট প্রতিটি সংখ্যার উপস্থাপনের জন্য পূর্ণসংখ্যার একটি তালিকা। তিনটি তালিকা কমা দ্বারা পৃথক করা হয়।
মনে রাখবেন যে কখনও কখনও একাধিক ঘাঁটি সম্ভব হয়। এখানে কেবল একটি (এলোমেলো) সমাধান আউটপুট করা হয়।

[12, 103], [4, 101], [16, 204] -> 349
[4, 21, 25], [5, 1, 20], [9, 23, 17] -> 28
[16, 11], [25, 94], [41, 105] -> 147
[2, 140], [21, 183], [24, 100] -> 223
[8, 157], [1, 28], [9, 185] -> 227
[2, 158], [88], [3, 12] -> 234
[8, 199], [1, 34], [9, 233] -> 408
[3, 247], [7, 438], [11, 221] -> 464
[3, 122], [3, 2], [6, 124] -> 480
[6, 328], [3, 31], [9, 359] -> 465
[2, 1, 0, 0, 0, 0], [1, 2, 0, 0, 1, 0, 1, 0], [1, 2, 2, 1, 1, 0, 1, 0] - > 3
[16, 105], [16, 120], [33, 84] -> 141
[15, 60], [9, 30], [24, 90] -> 268
[2, 0], [1, 2], [3, 2] -> 5
[1, 3, 3, 7], [1, 2, 3], [1, 4, 6, 0] -> 10
[0], [1, 12, 8], [1, 12, 8] -> 16
[1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1], [1, 0, 0, 1, 0, 1, 1, 0, 0 , 1], [1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0] -> 2
[1], [1], [1,1] -> 1

আপনি এই পাইথ প্রোগ্রামের সাহায্যে অতিরিক্ত পরীক্ষার কেস তৈরি করতে পারেন । প্রথম লাইন এবং জন্য দশমিক মান উপর একটি বেস লিখুন Xএবং Yনিম্নলিখিত দুটি লাইন।
এছাড়াও আপনি এ পাইথ প্রোগ্রামটি এলোমেলো মান ব্যবহার করে একবারে একাধিক পরীক্ষার কেস তৈরি করতে ব্যবহার করতে পারেন । ইনপুটটিতে কেবল পরীক্ষার কাঙ্ক্ষিত পরিমাণ প্রবেশ করান।

শুভ কোডিং!


উত্তর:


12

জেলি, 16 11 7 বাইট

_/N,‘FṀ

এই পন্থাটি ভারপ্রাপ্তভাবে @ বিকারের অক্টাভ উত্তরের ভিত্তিতে তৈরি ।

ইনপুট ফর্ম্যাটটি জেন, ওয়াই, এক্স , অল্প-ইন্ডিয়ান অঙ্কের অর্ডার সহ, আনারির জন্য 0 সংখ্যা ব্যবহার করে ।

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস চালান

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

সম্ভাব্য ঘাঁটিগুলি ক্রমবর্ধমানভাবে পরীক্ষা করার পরিবর্তে, এটি বহুতলটি সমাধান করে যা অ্যারে পি: = এক্স + ওয়াই - জেড এর সাথে মিলে যায় । এটি হয় আয় বৃহত্তম সহগ পি ≠ 0 - বা সর্বোচ্চ অঙ্ক - যেহেতু অন্তত একটি বৈধ বেস যা, একটি রুট হতে হয়েছে এক্স , ওয়াই এবং জেড দ্বারা বৃদ্ধি 1

_/N,‘FṀ  Main link. Argument: [Z, Y, X]

_/       Reduce by subtraction; yield Z - X - Y.
         This works since Z must have at least as many digits as X and Y.
  N      Negate to yield X + Y - Z.
    ‘    Yield [Z, Y, X], with all digits increments by 1.
   ,     Pair the results to the left and to the right.
     F   Flatten the resulting, nested list.
      Ṁ  Compute the maximum.

11

পাইথ, 13 বাইট

f!-FiRTQheSsQ

এক্স এবং ওয়াইয়ের পরে জেড আশা করে

পরীক্ষা স্যুট

মূলত, আমরা প্রতিটি সম্ভাব্য বেস পরীক্ষা করি, বৃহত্তম সংখ্যার চেয়ে আরও একটিতে শুরু করে। পরীক্ষাটি হ'ল আমরা প্রতিটি সংখ্যাকে প্রশ্নের ভিত্তিতে রূপান্তর করি, তারপরে সংখ্যার উপর দিয়ে বিয়োগফলকে ভাঁজ করি এবং যুক্তিযুক্তভাবে ফলাফলটিকে উপেক্ষা করি।


5
সুতরাং এই এক জিরো হিসাবে unattractive লাগে?
ফান্ড মনিকার লসুইট

3
@ কিপ্যায়েস টেক্সস আমি অনুমান করছি যে আপনি বোঝাচ্ছেন নিখরচায় এবং হ্যাঁ।
মেগো

4
@ মেগো আমি অকার্যকর বলতে চাইছিলাম, অটোকোরেক্ট বলতে যা বোঝাতে চাইছিল তাই বোঝায়।
তহবিল মনিকার লসুইট

10

অক্টাভা, 67 75 38 32 বাইট

কারণ "সমস্ত জিনিসগুলি লুপ করা" খুব বেশি কাজ।

@(x,y,z)max([m=max(x+y-z) z])+~m

একই আকারের ইনপুট অ্যারে করতে 0 টি প্যাডিং প্রয়োজন Requ

[2, 158],[88],[3, 12]
becomes
[2, 158],[0, 88],[3, 12]

যেহেতু 0প্যাডিংয়ের 1জন্য ব্যবহৃত হয় , তাই অ্যানারি হিসাবে টোকেন হিসাবে ব্যবহৃত হয়।

(ধন্যবাদ প্রশ্নের স্পষ্টতার জন্য @ ডেনারএফিকে জানাই ।)

আদর্শের উপর নমুনা রান করুন ।


সংক্ষিপ্ত ব্যাখ্যা:

কোনও মামলা না করে জড়িত একটি মামলা নিন:

   [ 8, 199]
 + [ 1,  34]
 -------------
     9, 233
 - [ 9, 233]
 -------------
     0,   0 --- no carries

এই ক্ষেত্রে বেসের উপর কোনও নিষেধাজ্ঞান নেই যতক্ষণ না এটি কোনও "ডিজিট" এর চেয়ে বড়। কেবলমাত্র z(যেমন হিসাবে সর্বাধিক উপাদান নিতে)z >= x,y ) এবং 1 (বা কোনও ধনাত্মক পূর্ণসংখ্যা) যুক্ত করুন।

একটি বহন আউট ক্ষেত্রে (কোনো বহন-ইন সহ), আমরা কলামের এক এবং মধ্যে পার্থক্য বেস অতিক্রম করেছেন x+yএবং zবেস হল:

   [ 2, 140]
 + [21, 183]
--------------
    23, 323
 - [24, 100]
 -------------
    -1  223
     ^   ^------ base
     |---------- carry in

যদি দ্বিতীয় কলামটির যোগফলও বেসকে ছাড়িয়ে যায়, তবে বহন করার পাশাপাশি বহন করার প্রয়োজন হয় তবে এর মান হবে base+(-1)। আমাদের ক্যারিআউট সহ ডানদিকে কোথাও একটি কলাম থাকতে হবে এবং কোনও বহন করার ক্ষেত্রে এর সঠিক (বৃহত্তর) বেস মান নেই।


9

হাস্কেল, 90 73 বাইট

f l=[b|b<-[1..],all(<b)$id=<<l,[x,y,z]<-[foldl((+).(b*))0<$>l],x+y==z]!!0

ব্যবহারের উদাহরণ: f [[3, 247],[7, 438],[11, 221]]->464

সহজভাবে সমস্ত ঘাঁটি চেষ্টা করুন b(যেখানে bসংখ্যাটি সর্বাধিকের চেয়ে বড়)। যেখানে প্রথমটি বেছে নিনx+y==z

সম্পাদনা করুন: @ এক্সনর প্রাথমিকভাবে এর থেকে মুক্তি পেয়ে অনেকগুলি বাইট সংরক্ষণ করেছেন import Data.Digits


1
unDigits bআমি যা মনে করি তা যদি করে তবে তা হিসাবে foldl(\x y->b*x+y)0বা সমতুল্যভাবে প্রয়োগ করা আরও কম হওয়া উচিত foldl((+).(b*))0
xnor

1
এটা তোলে নিতে খাটো maximumসমরূপতার পরে: b<-[1+(maximum$id=<<l)..]
xnor

1
বা, maximumহিসাবে পরীক্ষা b<-[1..],all(<b)$id=<<l
xnor

এই ইনপুট জন্য কাজ যেখানে বেস 1 একমাত্র সমাধান? আমি যে অনলাইন অনলাইন সংকলকগুলি পেয়েছি তা দিয়ে এটি সম্পাদন করতে পারি না, তাই আমি নিজেকে পরীক্ষা করতে পারি না।
ডেনকার

@ ডেনারএফি: dএকটি বেস সংখ্যার সংখ্যাগুলি হওয়া উচিত না , সুতরাং বেসের জন্য একমাত্র সম্ভাব্য bসংখ্যাটি কি ? মূল্যায়ন । 0 <= d < b10f [[0],[0],[0,0]]1
নিমি

8

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

`GY:@XJZQ2:"wJZQ-]]J

ইনপুট ফর্ম্যাটে রয়েছে (বাইরের কোঁকড়ানো ধনুর্বন্ধনী নোট করুন):

{[4, 21, 25],[5, 1, 20],[9, 23, 17]}

এটি বর্তমান সংস্করণে (15.0.0) কাজ করে

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

ব্যাখ্যা

`        % do...while index
  G      %   push input. First time pushed nothing but asks for input implicitly
  Y:     %   unpack the cell array, pushing the three numeric arrays
  @      %   loop index: candidate base
  XJ     %   copy into clipboard J
  ZQ     %   evaluate polynomial: interpret third array in that base
  2:"    %   for loop: do this twice (subtract the other numbers from the third)
    w    %     swap, to process another array
    J    %     push base
    ZQ   %     evaluate polynomial: interpret array in that base
    -    %     subtract
  ]      %   end for loop. A result 0 indicates a solution has been found
]        % end do....while loop. Exit if top of stack is 0
J        % push found base. Implicitly display

8

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

--X>t~1G+hX>

আমার অকটাভের উত্তর এমএটিএলে অনুবাদ করুন । (আমার প্রথম এমএটিএল উত্তর!)

  • ইনপুট অর্ডার Z, X, Y(বাZ, Y, X যদি আপনি পছন্দ করেন তবে আমি সহজ)
  • ইনপুট অ্যারেগুলি সমান দৈর্ঘ্যে শূন্য প্যাডযুক্ত
  • 1 হিসাবে অপ্রচলিত লাগে

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

ব্যাখ্যা

--X>t~1G+hX>

--            % M = Z - X - Y
  X>          % P = max(M)
    t~        % Duplicate and negate
      1G      % Push 1st argument (Z) 
        +     % ~P + Z
         h    % Concatenate [P (~P + Z)]
          X>  % Return max

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