দুটি অ্যারে সেরা পান


19

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

উদাহরণস্বরূপ, তালিকাগুলি দেওয়া হয়েছে [1, 3, 3.2, 2.3]এবং [3, 1, 3.2, 2.6], আপনাকে অবশ্যই নিম্নলিখিত কাজগুলি করতে হবে:

  • উপাদানগুলি (বা জিপ) যুক্ত করুন : [[1, 3], [3, 1], [3.2, 3.2], [2.3, 2.6]].

  • প্রতিটি জোড়া দিয়ে যান এবং উপরোক্ত প্রক্রিয়া প্রযোজ্য: [3, 3, 6.4, 2.6]


চশমা

  • অ্যারে / তালিকাগুলির সর্বদা সমান দৈর্ঘ্য থাকবে। এগুলি অবশ্য খালি থাকতে পারে।

  • যতক্ষণ আপনি এটিকে অপব্যবহার না করেন ততক্ষণ তাদের অন্তর্ভুক্ত নম্বরগুলি সর্বদা আপনার ভাষার দক্ষতার সাথে খাপ খায়। এগুলি ইতিবাচক, শূন্য বা নেতিবাচক হতে পারে, আপনাকে অবশ্যই সমস্ত ধরণের হ্যান্ডেল করতে হবে।

  • এটা সাহায্য করে আপনি আপনার বাইট গণনা কমাতে থাকে, তাহলে আপনি পারে এছাড়াও ইনপুট হিসাবে তালিকার দৈর্ঘ্য নিতে।

বিধি


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

অ্যারে_1, অ্যারে_2 -> আউটপুট

[], [] -> []
[1, 2, 3], [1, 3, 2] -> [2, 3, 3]
[1, 3, 3.2, 2.3], [3, 1, 3.2, 2.6] -> [3, 3, 6.4, 2.6]
[1,2,3,4,5,5,7,8,9,10], [10,9,8,7,6,5,4,3,2,1] -> [10, 9, 8, 7, 6, 10, 7, 8, 9, 10]
[-3.2, -3.2, -2.4, 7, -10.1], [100, -3.2, 2.4, -7, -10.1] -> [100, -6.4, 2.4, 7, -20.2]

আপনি বলছেন যে সংখ্যাগুলি সর্বদা আপনার ভাষার "ক্ষমতার মধ্যে" ফিট হয়ে যাবে As যতক্ষণ না আপনি "অপব্যবহার" করেন না। কেবলমাত্র এমন ভাষায় সমর্থন করবে পূর্ণসংখ্যা যা ভাসা থাকে না তাকে আপত্তি হিসাবে বিবেচনা করা হবে? প্রশ্নটি ভাসমান বিন্দু বলে? তবে এটি কেন ভাসমান হতে পারে তা সত্যিই আমি দেখতে পাচ্ছি না The একই প্রক্রিয়াটি পূর্ণসংখ্যার ক্ষেত্রেও করা যেতে পারে I ব্রেইন-ফ্ল্যাঙ্কে আমি এটি সমাধান করতে চাই তবে ব্রেইন-ফ্ল্যাক কেবল ইনটকে সমর্থন করে
গম উইজার্ড

@ ওয়েট উইজার্ড আমি এটির জন্য ব্যতিক্রম করতে পারি। এগিয়ে যান এবং আপনার উত্তর পোস্ট করুন এবং উল্লেখ করুন যে আমি এটিকে বিভ্রান্তি এড়াতে দিয়েছি।

উত্তর:


8

জেলি, 4 বাইট

=‘×»

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

এটি আমার এপিএল উত্তরের মতো ঠিক একই পদ্ধতির ব্যবহার করে , ব্যতীত জেলি কোনও সংখ্যায় একটি যুক্ত করার জন্য অন্তর্নির্মিত না থাকে!


একটি স্পিলস্পোর্ট হিসাবে ঘৃণা করা, কিন্তু সেই অক্ষরগুলির মধ্যে কিছুগুলি কোনও বুদ্ধিমান এনকোডিংয়ে প্রতিটি বাইটের বেশি নয়?
সিড্রিক নাইট

এটি জেলি কোডপেজ ব্যবহার করে ।
জাকারি

আমি শেষ পর্যন্ত প্রতিযোগিতার বিরুদ্ধে জিতেছি!
জাকারিয়া

2
@ Zachary এক ব্যক্তি, 4 btytes ... এই গ্রীষ্মে ... আপনি ... হবে ... হতে ... অবস্থায় ওনার জেলি ... জেলি জন্য বিপরিতে জে
ম্যাজিক অক্টোপাস উরান

11

কোটলিন, 78 75 71 66 65 59 বাইট

এটি আমার প্রথম প্রচেষ্টা, শান্ত হোন: ডি

a.zip(b).map{(a,b)->when{b>a->b;a>b->a;else->a*2}}.toList()

টিআইও এই সমাধানটির সাথে কাজ করে না (এবং আমি জানি না কেন), নীচের পরীক্ষার জন্য সোর্স কোড

fun main(args: Array<String>) {
    bestOfTwo(floatArrayOf(), floatArrayOf()).print()
    bestOfTwo(floatArrayOf(0F), floatArrayOf(0F)).print()
    bestOfTwo(floatArrayOf(1F,2F,3F), floatArrayOf(1F,3F,2F)).print()
    bestOfTwo(floatArrayOf(1F,3F,3.2F,2.3F), floatArrayOf(3F,1F,3.2F,2.6F)).print()
    bestOfTwo(floatArrayOf(1F,2F,3F,4F,5F,5F,7F,8F,9F,10F), floatArrayOf(10F,9F,8F,7F,6F,5F,4F,3F,2F,1F)).print()
    bestOfTwo(floatArrayOf(-3.2F,-3.2F,-2.4F,7F,-10.1F), floatArrayOf(100F,-3.2F,2.4F,-7F,-10.1F)).print()
}


fun bestOfTwo(a :FloatArray, b :FloatArray): List<Float> =
    a.zip(b).map{(a,b)->when{b>a->b;a>b->a;else->a*2}}.toList()


fun List<Float>.print() {
    this.forEach { print("$it, ") }; println("")
}

সম্পাদনা করুন:

-3 "a * 2" দ্বারা "a + b [i]" প্রতিস্থাপন করুন

-4 "জিপ" দ্বারা "মানচিত্রের ইনডেক্সড" পদ্ধতিটি প্রতিস্থাপন করে (@ অজ্ঞাতনামা রিলেলিটি সুইফট সমাধানকে ধন্যবাদ)

-5 "ম্যাথ.ম্যাক্স" পদ্ধতিটি শর্ত অনুসারে প্রতিস্থাপন করুন

-1 পরিবর্তন দ্বারা শর্ত আদেশ যখন

-6 ফ্ল্যাটআর্রে পরিবর্তন করে () টুলিস্ট () দ্বারা


10
পিপিসিজিতে আপনাকে স্বাগতম! দয়া করে ডাউনটাতে হতাশ হবেন না (এটি এমন একটি সিস্টেমের সামান্য কৌতুকের ফলস্বরূপ ঘটে যখন কোনও নতুন ব্যবহারকারীর প্রথম পোস্টটি মানের জন্য স্বতঃ পতাকাঙ্কিত করা হয় এবং তারপরে তারা পোস্টের উন্নতি করে !!)
জোনাথন অ্যালান

2
সর্বকালের সবচেয়ে খারাপ "বৈশিষ্ট্য" ... বিটিডব্লিউ এর পক্ষে খারাপ লাগবে না।
এরিক আউটগল্ফার

10

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

আমার প্রাথমিক সমাধান এবং @ovs এর মিশ্রণ ।

lambda*a:map(lambda x,y:max(x,y)*-~(x==y),*a)

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

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

lambda x,y:[max(a,b)*-~(a==b)for a,b in zip(x,y)]

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

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

@ovs 3 টি বাইট সংরক্ষণ করার জন্য এই পদ্ধতির পরামর্শ দিয়েছে।

lambda*x:[max(a,b)*-~(a==b)for a,b in zip(*x)]

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


কিভাবে?

প্রথমে, আমরা সংশ্লিষ্ট উপাদানগুলিকে জোড় করে, হয় *অথবা ব্যবহার করেzip() । এটি আমাদের মানচিত্র বা একটি তালিকা বোঝার সাথে কাজ করে আমাদের আরও গল্ফিং করতে দেয়।

এই উত্তরটি শীতল কৌতুক এই অংশ: max(x,y)*-~(x==y)ওটা কিভাবে কাজ করে? - ঠিক আছে, আপনারা বেশিরভাগই ইতিমধ্যে জানেন যে পাইথন বুলি মানগুলিকে পূর্ণসংখ্যায় রূপান্তর করে যখন সেগুলি গাণিতিক ক্রিয়াকলাপে ব্যবহৃত হয়। সুতরাং, শর্ত পূরণ করা (x==y)হয় 1, হিসাবে হিসাবে মূল্যায়ন করা হয়। তবে, দুটি মান সমান না হলে এটি 0পরিবর্তে ফিরে আসে । তারপরে, বিটওয়াইজ অপারেশনটি -~বুল থেকে ফিরে দেওয়া মানকে বাড়িয়ে 1দেয়, আমাদের 2বা হয় দিয়ে 1max(a,b)জোড়ের সর্বাধিক মান দেয় এবং *এটি উপরের মূল্যের সাথে গুণিত করে (সুতরাং এটি 2কেবলমাত্র যদি তারা সমান হয় তবে এর দ্বারা গুণিত হয় , যার ক্ষেত্রে max()উভয়ের মান ফেরত দেয়)।

এটি দুটি সমান সংখ্যার যোগফল প্রকৃতপক্ষে উভয়টি দ্বিগুণ হয়ে গেছে এবং এই ধরণের পাইথনের বুল শ্রেণীর অন্তর্নিহিত একটি সাবক্লাস হওয়ায় এটি ভিত্তিক is


বাহ, এটা সত্যিই দ্রুত ছিল!

আরও সোজা, একই সংখ্যক বাইট:lambda*a:map(lambda x,y:(x<=y)*y+(x>=y)*x,*a)
জেফার্ড

@ জেফেরার্ড আমি সত্য, এটি ইতিমধ্যে লুইসের সমাধান।
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার উফ! আমি পুরো পৃষ্ঠাটি
পড়িনি

ক্রম পরিবর্তনের সাথে সাথে কখনই "উপরে" বলবেন না (উপরে আপনার সমাধানটি আমি দেখতে পাচ্ছি না)
জাকারি

8

জাভাস্ক্রিপ্ট (ES6), 53 49 45 43 বাইট

a=>b=>a.map((x,y)=>(y=b[y])>x?y:y<x?x:x+y)
  • মিঃ এক্সকোডারের কাছ থেকে একটি কৌশল ধার করে 4 বাইট সংরক্ষণ করা হয়েছে।
  • 2 বাইট সংরক্ষণ করেছেন আর্নল্ডকে ধন্যবাদ।

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

o.innerText=(f=

a=>b=>a.map((x,y)=>(y=b[y])>x?y:y<x?x:x+y)

)(i.value=[1,3,3.2,2.3])(j.value=[3,1,3.2,2.6]);oninput=_=>o.innerText=f(i.value.split`,`.map(eval))(j.value.split`,`.map(eval))
<input id=i><input id=j><pre id=o>


ব্যাখ্যা

a=>b=>

বেনামে ফাংশন 2 টি অ্যারেটিকে প্যারামিটারগুলির মাধ্যমে আর্গুমেন্ট হিসাবে গ্রহণ করে aএবং bসিনট্যাক্স কারিঙে (অর্থাত্ কল দিয়ে কল করুন)f(a)(b)

a.map((x,y)=>                      )

প্রথম অ্যারের উপরের মানচিত্র, প্রতিটি উপাদানকে এমন একটি ক্রিয়াকলাপের মধ্য দিয়ে যা যেখানে xবর্তমান উপাদান এবং yবর্তমান সূচী।

(y=b[y])

yদ্বিতীয় অ্যারেতে সূচকে উপাদানটি পান এবং এটির নতুন মান হিসাবে নির্ধারণ করুন y

>x?y

এর yচেয়ে বড় কিনা তা পরীক্ষা করে দেখুন x, যদি থাকে তবে ফিরে আসুন y

:y<x?x

অন্যথায়, কিনা এর yচেয়ে কম কিনা তা পরীক্ষা করুন xএবং যদি থাকে তবে ফিরে আসুনx

:x+y

অন্যথায়, এর সমষ্টি আসতে xএবং y। (বহুগুণ xবা y2 দ্বারা এখানেও একই সংখ্যক বাইটের জন্য কাজ করা হবে))


j.value.split`,`.map(eval)বা eval('['+j.value+']')? এছাড়াও x+yএই প্রোগ্রামটিতে neater দেখাবে।
নীল

@ নীল: 1) আমি টাইপ করা আগেরটি সহজ খুঁজে পাই। এছাড়াও, আমার একটি মেশিনে আমার কাছে কয়েকটি স্নিপেট টেম্পলেট রয়েছে; .map(eval)এগুলি কেবল সামাল দেওয়া সহজ । 2) সম্মত হয়েছে, মুহুর্তে সম্পাদনা করবে।
শেগি


7

আর , 31 29 বাইট

function(a,b)pmax(a,b)+a*!a-b

pmax দুটি (বা আরও বেশি) অ্যারের সমান্তরাল সর্বাধিক গ্রহণ করে (প্রয়োজন অনুসারে সংক্ষিপ্ত পুনর্ব্যবহারযোগ্য)।

আমি লুইস মেন্ডোর মন্তব্যের দিকে তাকিয়ে ছিলাম এবং স্পষ্টতই আমি বুঝতে পেরেছিলাম যে পদ্ধতির ফলে আর এর পক্ষেও কাজ করতে পারে। আমাকে 30 বাইট পেয়েছিলাম, কিন্তু তারপর আমি পরিবর্তে সূচকের পেয়ে আমার মূল উত্তর উন্নত করার জন্য বিভিন্ন উপায়ে নিয়ে খেলতে শুরু করেছে এবং উপর পদস্খলিত !a-bযেমন TRUEযেখানে a==bএবং FALSEঅন্যথায়, সমতূল্য a==b। যাইহোক, কোন কারনের জন্য, আর প্রথম বন্ধনী কাছাকাছি প্রয়োজন হয় না !a-bযেমন জন্য আছে a==b, যা আমাকে দুই বাইট সংরক্ষিত হয়েছে।

মন্তব্যে জেডিএল দ্বারা উল্লিখিত হিসাবে , এটি কাজ করে কারণ !(অবহেলা) এর -আর বাইনারি অপারেটরের চেয়ে কম অগ্রাধিকার রয়েছে , যা আশ্চর্যজনক।

এটি অনলাইন চেষ্টা করুন! (নতুন সংস্করণ)

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


দেখা যাচ্ছে যে একাকার "!" বাইনারি "-" এর চেয়ে আর-তে কম প্রাধান্য পেয়েছে, যা আমি মনে করি এটি বেশ অস্বাভাবিক (এবং এই উত্তরটি পড়া পর্যন্ত আমি বুঝতে পারি নি!)
জেডিএল

@ জেডিএল হ্যাঁ, আমি প্রায় সর্বদা আর সিনট্যাক্স পৃষ্ঠাটি খুলতে হবে যখন এই জাতীয় উদ্ভট বিস্ফোরণের ক্ষেত্রে গল্ফ করার সময় ... এবং এটিও কারণ :পাটিগণিতের সাথে আলাপচারিতার সময় আমি কখনও স্মরণ করতে পারি না ।
জিউসেপে


6

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

⌈×1+=

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

কিভাবে?

  • , আর্গুমেন্টের ভিত্তিতে সর্বাধিক যুক্তি
  • ×, উপাদান অনুসারে গুণিত
  • 1+=, 1 যুক্তিগুলির উপাদান-ভিত্তিক সমতাতে যুক্ত হয়েছে

এটি কাজ করে কারণ সংখ্যাটি যদি অসম হয় তবে 1+=তা হবে 1, যা যখন সর্বোচ্চ দ্বারা গুণিত হয়, সর্বাধিক হয়। সংখ্যাগুলি সমান হলে, 1+=ফিরে আসবে 2, যখন এটি সর্বাধিক দ্বারা গুণিত হয়, আমরা সর্বাধিক দ্বিগুণ হয়, বা নিজের সাথে সর্বাধিক যোগ হয়।


5

জেলি , 6 বাইট

żSṀE?€

একটি ডায়াডিক লিঙ্ক প্রতিটি পাশে সংখ্যার একটি তালিকা নিয়েছে এবং ফলাফলের তালিকাটি ফিরিয়ে দিচ্ছে।

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা-স্যুট * দেখুন।

কিভাবে?

żSṀE?€ - Link: list of numbers L, list of numbers R   e.g. [1,3,3.2,2.3], [3,1,3.2,2.6]
ż      - zip - interleave L & R                       [[1,3],[3,1],[3.2,3.2],[2.3,2.6]]
     € - for each pair:
    ?  - { if:
   E   -   ...condition: equal                          0      0       1         0
 S     -   ...then: sum                                               6.4
  Ṁ    -   ...else: maximum                             3      3                2.6
       - }                                    ... ->   [3     ,3     ,6.4      ,2.6]

একটি বিকল্প হ'ল এই monadic লিঙ্কটি দুটি তালিকার একটি তালিকা গ্রহণ করে, এছাড়াও 6 বাইট :

+»⁼?"/

* আমি মনে করি না যে আমি আগে কখনও কোডের বাইট গণনা থেকে প্রায় তিনগুণ একটি টেস্ট-স্যুট ফুটার তৈরি করেছি!


Outgolfed! । প্রশ্নের ব্যবহারিকভাবে ভারব্যাটিক ব্যাখ্যার জন্য +1।
জাকারি

... এবং আমি »ভেক্টরাইজদের আগে ভুলে গিয়ে ধরা পড়েছি !
জোনাথন অ্যালান

এটি আর কী করবে, কিছুটা সংশ্লেষিত উপায়ে সর্বাধিক অ্যারে নেবে?
জাকারি

কোনও সংশ্লেষিত সংজ্ঞা দরকার নেই, পাইথন পরিচালনা করে - উদাহরণস্বরূপ max([1,1,0],[1,0,3]) -> [1,1,0](না [1,1,3])।
জোনাথন অ্যালান

তাহলে, মূলত অসীম-বেস?
জাকারি 21

5

দুর্দান্ত ধারণা ব্যবহার করে γ!
এমিগানা

@ এমিগনা আমি সত্যিই "সর্বাধিক উপাদান" চেয়েছিলাম এবং {γθসম্ভবত এটির জন্য আমি সবচেয়ে সংক্ষিপ্ততম।
এরিক দ্য আউটগল্ফার

কীভাবে øεMÃO?
এমিগানা

এমিনা কুল, ধন্যবাদ! (দুহ কেন আমি ভেবে দেখিনি ) ইয়ে এখন নেতৃত্ব পেয়েছে: পি øεZÃO
বিটিডব্লিউ

4

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

X>tG=s*

ইনপুট একটি দুটি সারি ম্যাট্রিক্স, যেখানে প্রতিটি সারি অ্যারেগুলির মধ্যে একটি।

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

ব্যাখ্যা

X>   % Implicit input. Maximum of each column
t    % Duplicate
G    % Push input
=    % Is equal? Element-wise with broadcast. Gives a two-row matrix
s    % Sum of each column. Gives a row vector containing 1 and 2
*    % Multiply, element-wise. Implicit display

4

জাভা 8, 80 69 67 66 65 64 63 বাইট

(a,b,l)->{for(;l-->0;)if(a[l]>=b[l])b[l]=a[l]*(a[l]>b[l]?1:2);}

পরিবর্তে দ্বিতীয় ইনপুট-অ্যারে সংশোধন করে বা বাইটগুলি সংরক্ষণ করতে নতুন ফ্লোট-অ্যারে ফিরিয়ে দেয়।

দৈর্ঘ্য অতিরিক্ত পূর্ণসংখ্যার ইনপুট হিসাবে গ্রহণ করে -11 বাইট, যা চ্যালেঞ্জ নিয়ম অনুসারে অনুমোদিত।
-5 ধন্যবাদ বাইট @ OliverGrégoire (একটি সময়ে এক বাইট .. xD)
-1 বাইট পরোক্ষভাবে ধন্যবাদ @Shaggy এর জাতীয় উত্তর , ব্যবহার করে a[l]*2পরিবর্তে a[l]+b[l]

ব্যাখ্যা:

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

(a,b,l)->{          // Method with 2 float-array and integer parameters and no return-type
  for(;l-->0;)      //  Loop over the array
    if(a[l]>=b[l])  //   If the current value in `a` is larger or equal to `b`:
      b[l]=         //   Modify the second input-array:
       a[l]*        //    Use `a` multiplied by:
        (a[l]>b[l]? //     If the current value in `a` is larger than `b`:
          1         //      Multiply by 1
         :          //     Else (`a` is smaller of equal to `b`):
          2)        //      Multiply by 2
                    //  End of loop (implicit / single-line body)
}                   // End of method

2
"যদি এটি আপনাকে আপনার বাইট গণনা হ্রাস করতে সহায়তা করে তবে আপনি তালিকাগুলির দৈর্ঘ্যও ইনপুট হিসাবে নিতে পারেন" " এটি অবশ্যই আপনার বাইট গণনা হ্রাস করবে;)
অলিভিয়ের গ্রাগোয়ার

1
এছাড়াও, 2 বাইট সংক্ষিপ্ত:a->b->l->{float A,B;for(;l-->0;b[l]=(A=a[l])<B?B:A>B?A:A+B)B=b[l];}
অলিভিয়ার গ্রাগোয়ার

এবং আপনি আরম্ভের float A, Bমধ্যে রেখে আরও একটি বাইট সংরক্ষণ করতে পারেন for
অলিভিয়ার গ্রাগোয়ার

1
বা এটি: (a,b,l)->{for(;l-->0;)if(a[l]>=b[l])b[l]=a[l]*(a[l]>b[l]?1:2);}(63 বাইট)
অলিভিয়ার

3
@ অলিভিয়েরগ্রোগোয়ার লোল .. প্রতিটি বাইটে গল্ফ দিয়ে সাহায্য করে তবে এর অর্থ এই নয় যে আপনাকে একবারে এটি একটি বাইট গল্ফ করতে হবে। ; p &
কেভিন ক্রুজসেন


3

05AB1E, 9 8 7 bytes

Saved a byte as Erik the Outgolfer pointed out that a list of lists is valid input.

øεMsËi·

Try it online!

Explanation

ø          # zip the lists
 ε         # apply to each pair
  M        # get max
   s       # swap the top 2 elements on the stack
    Ëi     # if all elements are equal
      ·    # double the max

Wow, that was really fast!

You can save a byte by removing the and inputting as a pair of a list and a list.
Erik the Outgolfer

@EriktheOutgolfer: True. I assumed we weren't allowed to, but I see that the challenge does specify standard I/O rules. Thanks for notifying :)
Emigna

1
@Emigna Tip: don't make rules out of your mind ;)
Erik the Outgolfer

1
@EriktheOutgolfer: Yeah I really need to stop doing that. Especially rules which make my programs longer ;)
Emigna


3

J, 7 bytes

>.`+@.=

Try it online!

Takes one list as the left argument and the other as the right.

Luckily, equality is a rank zero operation.

Explanation

>.`+@.=
      =  Compare equality pairwise
    @.   If equal
   +       Sum
>.       (Else) take greater value

@. isn't really an if statement, but in this case it functions as one (it indexes into the gerund >.`+ based on the result of its right argument and applies that to the input).


খুব ভাল কাজ, আমি জানি যে আমি এটি করতে পারিনি, যদিও আপনি আমার এপিএলের আমার অনুবাদ দ্বারা ছড়িয়ে পড়েছেন । > _ <
জাকারি

জে সত্যিই এখানে shines
ইউনুস

@ জাকারি ইঁদুর, তবুও ভাল গল্ফযুক্ত।
কোলে


3

টিআই-বেসিক, 23 21 বাইট

Prompt A,B
(ʟA=ʟB)ʟA+max(ʟA,ʟB

খুব খারাপ তালিকাগুলি প্রতিটি দুটি বাইট নেয় ...


You can save two bytes by prompting for X and Y, then using ʟX and ʟY to access them, i.e. "Prompt X,Y:ʟX(ʟX=ʟY)+max(ʟ1,ʟ2".
Scott Milner

Also, this is currently invalid, since L1(L1=L2) attempts to get the element of L1 at a list, which throws an error. To fix that, swap the order, i.e. (L1=L2)L1.
Scott Milner

@ScottMilner Thanks for pointing both of those out.
Timtech



2

পাইথন 3 , 49 46 45 বাইট

@ মিস্টার এক্সকোডারকে ধন্যবাদ (3 টি যুক্তির পরিবর্তে স্প্ল্যাট) এবং 3 টি বাইট @ovs (তালিকা বোঝার পরিবর্তে মানচিত্র) এর জন্য ধন্যবাদ সরিয়েছে

lambda*x:map(lambda a,b:a*(a>=b)+b*(b>=a),*x)

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


1
46 বাইট: lambda*c:[a*(a>=b)+b*(b>=a)for a,b in zip(*c)]। দেখা যাচ্ছে এটিও বেশ ভাল :) - খুব বেশি খারাপ আরও গল্ফ করার কোনও জায়গা নেই
মিঃ এক্সকডার

@ মিঃ এক্সকোডার ধন্যবাদ! ভাল ধারণা!
লুইস মেন্ডো

জিপের পরিবর্তে মানচিত্র ব্যবহার করে 45 বাইট
ovs


2

Python with numpy, 28 bytes

lambda a,b:a*(a>=b)+b*(b>=a)

Assumes input is given as two numpy arrays.


If we are using numpy then here is my worse solution: lambda a,b:n.fmax(a,b)*((a==b)+1)
Erich

@Erich I like the idea, but to do that I would need to import numpy as n. I get away without it here because it's implicit in the input.

I guess i'm a bit shaky on the explicit byte counting, often python answers are simply lambdas, when an actual implementation of an answer would require assigning it to something. for this reason I wonder if it is allowable to get away with an implicit import statement as well?
Erich

@Erich In general, you can only refer to a variable n if you've defined n in your code, so imports must be explicit. By default, we allow functions or full programs as answers, which includes anonymous functions.

1
Well, this only needs input as numpy arrays, rather than importing numpy. But does this even work without using return?
Zacharý

2

C# (.NET Core), using Linq 47+18=65 bytes

x=>y=>x.Zip(y,(a,b)=>a>b?a:b>a?b:b+a).ToArray()

Try it online!

C# (.NET Core), 82 bytes

x=>y=>l=>{for(int i=0;i<l;i++)x[i]=x[i]>y[i]?x[i]:y[i]>x[i]?y[i]:y[i]*2;return x;}

Try it online!


You can drop the LINQ answer by a few bytes by changing namespace System.LINQ to using System.LINQ
jkelm

@jkelm yeah, I've been wondering if the 'using System;` is to be included or not like that, I guess not. I'll clean it up
Dennis.Verweij

System.Linq is included in the "Visual C# Interactive Compiler". I am not totally sure about returning Array vs IList vs IEnumerable, but if all are eligible then you can get the byte count to 37 - tio.run/##Sy7WTS7O/…
dana


1

Swift 3, 81 79 Bytes

func n(a:[Double],b:[Double]){for(x,y)in zip(a,b){print((x==y) ?x+y:max(x,y))}}

Swift has an interesting property in that an Int isn't directly castable to a Double, so you have to specify any arrays as being arrays of Doubles before passing them to the function.

(e.g.) var k:[Double] = [1,2,3,4,5,5,7,8,9,10]

Edit: -2 bytes thanks to @EriktheOutgolfer


Do you need spaces around (x,y) and before ??
Erik the Outgolfer

@EriktheOutgolfer The one before ? is needed because Swift would treat them as optional types instead of ternaries (which they aren't). The others aren't. Apart from that, this can be drastically golfed.

@EriktheOutgolfer - TheIOSCoder has already answered you partly, but you're right, you don't need the ones in the for loop, interesting!
AnonymousReality

73 bytes: func n(a:[Float],b:[Float]){print(zip(a,b).map{$0==$1 ?2*$0:max($0,$1)})} (the float inaccuracies need not to be handled by default)
Mr. Xcoder

Or 74 bytes: func n(a:[Float],b:[Float]){print(zip(a,b).map{($0==$1 ?2:1)*max($0,$1)})}
Mr. Xcoder


1

Japt, 13 bytes

íV,È¥Y Ä *XwY

Try it online! with the -Q flag to format the output array.


Nicely done. I made 2 attempts at this earlier with both coming out at 17 bytes. I'd forgotten í could take a function as a second argument.
Shaggy

1

Rust, 107 97 bytes

|a:V,b:V|a.iter().zip(b).map(|(&x,y)|if x==y{x+y}else{x.max(y)}).collect::<V>();
type V=Vec<f32>;

Try it online!

Saved 8 bytes thanks to @mgc


1
আমি অনুমান করেছি যে সংগ্রহ করাতে অনুমান টাইপ Vecকরে এবং এর maxপদ্ধতিটি ব্যবহার করে আপনি 8 বাইট সংরক্ষণ করতে পারবেন f32:|a:Vec<f32>,b:Vec<f32>|a.iter().zip(b).map(|(&x,y)|if x==y{x+y}else{x.max(y)}).collect::<Vec<_>>();
এমজিসি

1
@ এমজিসি ধন্যবাদ! প্রকার অনুকরণটি একটি ভাল ধারণা ছিল তবে এই ক্ষেত্রে প্রকারের নামটি আরও ছোট sh
jferard

1

সুইফট 4 , 41 বাইট

{zip($0,$1).map{$0==$1 ?2*$0:max($0,$1)}}

পরীক্ষার কেস:

let f: ([Float], [Float]) -> [Float]
    = {zip($0,$1).map{$0==$1 ?2*$0:max($0,$1)}}

let testcases: [(inputA: [Float], inputB: [Float], expected: [Float])] = [
    (
        inputA: [],
        inputB: [],
        expected: []
    ),
    (
        inputA: [1, 2, 3],
        inputB: [1, 3, 2],
        expected: [2, 3, 3]
    ),
    (
        inputA: [1, 3, 3.2, 2.3],
        inputB:  [3, 1, 3.2, 2.6],
        expected: [3, 3, 6.4, 2.6]
    ),
    (
        inputA: [1,2,3,4,5,5,7,8,9,10],
        inputB:  [10,9,8,7,6,5,4,3,2,1],
        expected: [10, 9, 8, 7, 6, 10, 7, 8, 9, 10]
    ),
    (
        inputA: [-3.2, -3.2, -2.4, 7, -10.1],
        inputB:  [100, -3.2, 2.4, -7, -10.1],
        expected: [100, -6.4, 2.4, 7, -20.2]
    ),
]

for (caseNumber, testcase) in testcases.enumerated() {
    let actual = f(testcase.inputA, testcase.inputB)
    assert(actual == testcase.expected,
        "Testcase #\(caseNumber) \((testcase.inputA, testcase.inputB)) failed. Got \(actual), but expected \(testcase.expected)!")
    print("Testcase #\(caseNumber) passed!")
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.