সংক্ষিপ্ত প্রোগ্রামটি বিজোড় এবং এমনকি বিভাগে সংখ্যার একটি তালিকা বাছাই করতে


13

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

চার্লি চ্যাপলিন বাছাইয়ের পদ্ধতিতে যদি কোনও অসঙ্গতি থাকে তবে যা প্রোগ্রামটি যাচাই করবে সেই প্রোগ্রামটি পাঞ্চ করার কথা । ম্যাক সোয়েন তার তাত্ক্ষণিক বস, একটি অ্যালগরিদম শেয়ার করেছেন যা তার কোড করা দরকার।

অ্যালগরিদম

L = List of Marble packets that's already sorted
L_ODD = List of packets with Odd Number of Marbles
L_EVEN = List of packets with Even Number of Marbles
Check_Digit = √(ΣL_ODD² + ΣL_EVEN²)

তাঁর কাজ হ'ল চেক_ডিজিট নির্ধারণ করা এবং তাঁর বসের গণনার যে মূল্যকে মূল্য দেয় তার সাথে এটি মেলে।

চার্লি চ্যাপলিন তার মধ্যাহ্নভোজনের সময়, ম্যাক সোয়েনের ড্রয়ারের কাছে ছিনতাই করতে এবং এটি নির্ধারণ করতে সক্ষম হয়েছিল যে তার ড্রয়ারের প্রথম 46 টি 32 টি কলামে পাঞ্চযুক্ত একটি একক কার্ড রয়েছে (যার অর্থ ম্যাক কেবল 4632 32 অক্ষর দিয়ে একটি প্রোগ্রাম লিখতে সক্ষম হয়েছিল )।

চার্লি চ্যাপলিনকে এখন যতটা সম্ভব কম লাইন দিয়ে একটি প্রোগ্রাম লিখতে সমস্ত কোড নিনজার সাহায্য প্রয়োজন need তিনি 50 পয়েন্টের বোনাসও ঘোষণা করেন, যদি কেউ এমন কোনও প্রোগ্রাম নিয়ে আসতে পারে যা তার বসের চেয়ে কম হয়।

সারসংক্ষেপ

ধনাত্মক সংখ্যার (বিজোড় এবং এমনকি) একটি তালিকা / অ্যারে / ভেক্টর প্রদত্ত, আপনাকে একটি ফাংশন লিখতে হবে যা array(int [])/vector<int>/listতালিকার বিজোড় এবং সমান সংখ্যার যোগফলগুলির যোগফলের যোগফলকে গ্রহণ করবে এবং গণনা করবে।

প্রোগ্রামের আকার হ'ল ফাংশনটির বডির আকার, অর্থাৎ ফাংশনের স্বাক্ষরের আকার বাদ দিয়ে।

উদাহরণ

List = [20, 9, 4, 5, 5, 5, 15, 17, 20, 9]
Odd = [9, 5, 5, 5, 15, 17, 9]
Even = [20, 4, 20]
Check_Digit = √(ΣOdd² + ΣEven²) = 78.49203781276162

দ্রষ্টব্য , বাস্তবায়নের ফ্লোটিং পয়েন্ট যথার্থতার ভিত্তিতে প্রকৃত আউটপুট পরিবর্তিত হতে পারে।

স্কোর

স্কোর হিসাবে গণনা করা হয় Σ(Characters in your Program) - 46স্কোর হিসাবে গণনা করা হয় Σ(Characters in your Program) - 32। সম্প্রদায় থেকে নিয়মিত উত্সাহ ছাড়াও সর্বনিম্ন নেতিবাচক স্কোরটি 50 পয়েন্টের অতিরিক্ত বোনাস গ্রহণ করবে।

সম্পাদন করা

  1. স্কোর গণনা করার জন্য যে অফসেটটি ব্যবহৃত হয়েছিল তা 46 থেকে 32 এ পরিবর্তন করা হয়েছে। দ্রষ্টব্য, এটি লিডার বোর্ড / অনুগ্রহ যোগ্যতার উপর প্রভাব ফেলবে না বা কোনও সমাধান অকার্যকর করবে না।

রায়

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

╒══════╤═════════════════╤══════════════╤═════════╤════════╤═══════╕
├ Rank │      Ninja      │   Dialect    │ Punches │ Scores │ Votes ┤
╞══════╪═════════════════╪══════════════╪═════════╪════════╪═══════╡
│  0   │     FireFly     │      J       │   17    │  -15   │   6   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  1   │     tmartin     │     Kona     │   22    │  -10   │   2   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  2   │ Sven Hohenstein │      R       │   24    │   -8   │   7   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  3   │    Ben Reich    │  GolfScript  │   30    │   -2   │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  4   │    mollmerx     │      k       │   31    │   -1   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  5   │ David Carraher  │ Mathematica  │   31    │   -1   │   3   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  6   │     tmartin     │      Q       │   34    │   2    │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  7   │     daniero     │      dc      │   35    │   3    │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  8   │    psion5mx     │    Python    │   38    │   6    │   2   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  9   │       O-I       │     Ruby     │   39    │   7    │   5   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  10  │      gggg       │    Julia     │   40    │   8    │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  11  │ FakeRainBrigand │  LiveScript  │   50    │   18   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  12  │    Sylwester    │    Perl5     │   50    │   18   │   2   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  13  │     daniero     │     Ruby     │   55    │   23   │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  14  │    vasuakeel    │ Coffeescript │   57    │   25   │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  15  │      dirkk      │    XQuery    │   63    │   31   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  16  │  crazedgremlin  │   Haskell    │   64    │   32   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  17  │   Uri Agassi    │     Ruby     │   66    │   34   │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  18  │     Sumedh      │     JAVA     │   67    │   35   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  19  │      Danny      │  Javascript  │   67    │   35   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  20  │     deroby      │      c#      │   69    │   37   │   1   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  21  │  Adam Speight   │      VB      │   70    │   38   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  22  │    Andrakis     │    Erlang    │   82    │   50   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  23  │      Sp0T       │     PHP      │   85    │   53   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  24  │    brendanb     │   Clojure    │   87    │   55   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  25  │  Merin Nakarmi  │      C#      │   174   │  142   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  26  │    Boopathi     │     JAVA     │   517   │  485   │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  27  │      Noyo       │     ES6      │    ?    │   ?    │   2   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  28  │     shiona      │   Haskell    │    ?    │   ?    │   0   │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│  29  │      Vivek      │     int      │    ?    │   ?    │   0   │
└──────┴─────────────────┴──────────────┴─────────┴────────┴───────┘

8
কেন সর্বনিম্ন স্কোরের বোনাস দরকার, তারা ইতিমধ্যে জিতেছে?
gggg

6
তদ্ব্যতীত, 46 এর অফসেট অর্ডার সম্পর্কিত কোনও পরিবর্তন করে না।
হাওয়ার্ড

@gggg আমার মনে হয় তাদের অর্থ তারা সর্বনিম্ন স্কোরিংয়ের উত্তর একটি +50 বন্টি দেবে।

1
@gggg: আমার অনুমতি পাওয়ার সাথে সাথে আমি আসলে একটি অনুদান শুরু করব। সুতরাং আমি বোনাস দ্বারা বোঝাতে চেয়েছিলাম।
অভিজিৎ

1
ওহ, ইঁদুর এখানে আমি ভেবেছিলাম যে নিয়মগুলি এখানে নিয়ে যাওয়া উচিত, এবং সেই চতুরতা এখানে পুরস্কৃত হবে। ;] তবুও, মজাদার প্রশ্ন এবং ভাল কাজ, সবাই!
ন্যো

উত্তর:


7

জে, 18 17 চর - 32 = ⁻15

[:+/&.:*:2&|+//.]

(একটি "ফাংশন বডি" হিসাবে; প্রথম বন্ধনী বা কোনও নামের সাথে আবদ্ধ হতে হবে))

ব্যাখ্যা

টপিয়া এপিএলের উত্তরগুলিতে যেমন করে প্রতিটি টুকরোটি কী করে তার বিস্ফোরিত দৃষ্টিভঙ্গি তৈরি করার চেষ্টা করেছি।

               +//. ]    NB. sum up partitions
           2&|           NB.   given by equality on (x mod 2)
        *:               NB. square,
   +/                    NB. sum,
     &.:                 NB. then revert the squaring (square-root)
                         NB. (f&.:g in general acts like g⁻¹(f(g(x))))
[:                       NB. (syntax to indicate composition of +/&.:*: and (2&| +//. ]))

+/&.:*:আরও দুটি অক্ষর বাঁচাতে |@j./ওআইয়ের জটিল মাত্রার কৌশলটি ব্যবহার করে প্রতিস্থাপন করা যেতে পারে ।

উদাহরণ

   f =: [:+/&.:*:2&|+//.]
   f 20 9 4 5 5 5 15 17 20 9
78.492

9

ES6, (48 - 32) = 16 (1 - 32) = -31

মূল সংস্করণ:

f=l=>(e=o=0)+l.map(x=>x%2?e+=x:o+=x)&&Math.hypot(e,o)

সম্পূর্ণ ফাংশন সংজ্ঞা 53 টি অক্ষর, শরীরের কেবল 48।

আপডেট সংস্করণ, সমস্যার সংজ্ঞাটির পুরো সদ্ব্যবহার করা এবং শরীর থেকে বাইরে এবং স্বাক্ষরে বেশ কিছু সরিয়ে নেওয়া:

f=(l,e=0,o=0,g=x=>x%2?e+=x:o+=x,c=l.map(g)&&Math.hypot(e,o))=>c

নতুন ফাংশন সংজ্ঞা এখন মোট "৩ "পাঞ্চ", তবে দেহ ফাংশনটি এখন কেবলমাত্র এক জঘন্য চরিত্রের দীর্ঘ। এছাড়াও এটি আর বিশ্বব্যাপী নেমস্পেসকে দূষিত করে না! : ডি

ব্যবহার:

>>> f([20, 9, 4, 5, 5, 5, 15, 17, 20, 9])
78.49203781276161

... এবং এখন আমার খুব খারাপ লাগছে। :]
নয়োও

+1, আমি আমার ES6 সমাধানটি মুছে ফেলেছি যেহেতু আপনার উপায়টি ভাল
ফ্লোরেন্ট

হা হা ধন্যবাদ. ওপি একবার দেখলে নিয়মগুলি পরিবর্তন করা হয় কিনা তা আমরা দেখতে পাবো ..;]
নয়োও

1
ঠিক আছে, দেখে মনে হচ্ছে কোনও উত্তর গৃহীত হওয়ার পরে এবং অনুগ্রহ প্রাপ্তির পরেও নিয়মগুলি প্রকৃতপক্ষে স্পষ্টভাবে পরিবর্তিত হয়েছিল। আচ্ছা ভালো! আমি এখনও এটি চ্যালেঞ্জের নিয়ম অনুসারে সর্বনিম্ন স্কোর সহ সমাধান হিসাবে বিবেচনা করি। :]
ন্যো

1
প্রকৃতপক্ষে সেই সি কোড-প্রতিযোগিতার কথা মনে করিয়ে দেয় যেখানে লোকে খুব জটিল জিনিসগুলি প্রত্যাবর্তনযোগ্য একটি 'সাধারণ' ফাংশন করে প্রিপ্রোসেসরে সব ধরণের কৌশল করে। নেট রেজাল্টটি বন্ধ ছিল না যে সংকলনটি কয়েক ঘন্টা এবং ঘন্টা সময় নিয়েছিল (এবং ঘন্টা) যখন প্রকৃত মৃত্যুদন্ডটি 100 সেকেন্ডের সংখ্যায় (বা এর মতো কিছু) পিঠে ফিরে আসবে কারণ ফলাফলটি বেশ কঠোরভাবে কোডেড ছিল বাইনেরিতে। যাইহোক, যদিও আমি মনে করি আমরা দুজনেই জানি যে আপনি প্রতারণা
করছিলেন

7

আর, (24 - 32) = −8

f=function(x)
    sum(by(x,x%%2,sum)^2)^.5  

ফাংশন বডিটিতে 24 টি অক্ষর থাকে।

ব্যবহার:

f(c(20, 9, 4, 5, 5, 5, 15, 17, 20, 9))
[1] 78.49204

Ergh !!! আপনার কাছে ঠিক যেমন আমি শুধু বিস্তারিত একই সমাধান !! sqrt(sum(by(x,x%%2,sum)^2))আমি কেবল স্কয়ারটিই অপ্টিমাইজ করিনি .... জঘন্য :-) +1 :-) পিএস: এটি আকর্ষণীয় byযে শিটটি আউটপুট ফর্ম্যাটের কারণে প্রথমে আউট হয়ে গেছে বলে মনে হচ্ছে তবে আপনি যখন sumএটি চালাবেন তখন এটি ঠিক হয়ে গেছে ;-)
টমাস

@ টমাস এই উদাহরণে, byএকটি মাত্রিক অ্যারে প্রদান করে। এক ফল দ্বারা ফাংশন বিচার করা উচিত নয় print.byফাংশন।
সোভেন হোহেনস্টেইন

না, byকোনও অ্যারে ফিরিয়ে দেয় না (বিটিডব্লিউ, আপনি "অ্যারে" বলতে কী বোঝেন? আর-তে কেউ নেই। সম্ভবত আপনি ভেক্টর বোঝাতে চেয়েছিলেন), না ভেক্টরও। byক্লাসের অবজেক্ট দেয় by
টমাস

@Tomas আছে হয় একবার দেখে এ আর আছে অ্যারে ?array। তদুপরি, is.array(by(1,1,I))রিটার্ন TRUE
সোভেন হোহেনস্টেইন

6

রুবি 2.1+ - (মোট 39 টি অক্ষর - 7 অ-দেহ - 32 অফসেট = 0)

কিছুটা ভিন্ন পদ্ধতি। আমি a+b*iএরকম একটি জটিল সংখ্যা তৈরি করি aএবং যথাক্রমে bসমান এবং বিজোড় সংখ্যার যোগফল list। তারপরে আমি কেবল পরম মান নিই।

f=->l{l.reduce{|s,x|s+x*1i**(x%2)}.abs}

আমার পূর্ববর্তী সমাধান, যা 5 টি অক্ষর দীর্ঘ, তবে 1.9.3+ এ কাজ করে:

f=->l{l.reduce{|s,x|s+x*?i.to_c**(x%2)}.abs}

একটি চূড়ান্ত নোটে, যদি রেলস + রুবি ২.১+ এর অনুমতি দেওয়া হয় তবে আমরা Array#sumদেহটি কেবল ২৫ টি অক্ষরে নামাতে ব্যবহার করতে পারি:

l.sum{|x|x+1i**(x%2)}.abs

খুব চতুর, আমি এটি পছন্দ করি! এটি আমার পাশাপাশি জেতে কয়েকটি অক্ষর বাঁচাতে পারে।
ফায়ারফ্লাই

ধন্যবাদ, @ ফায়ারফ্লাই আপনার সুন্দর। কখনও জে শিখতে হবে। চিয়ার্স!
ওআই

আপনাকে কেবল ফাংশনটির দেহ গণনা করতে হবে, আমি 37 টি অক্ষর বলব।
স্টেনস্লাগ

টিপস @ স্টেনস্লাগের জন্য ধন্যবাদ। আপডেট করা হয়েছে। আমি নতুন কমপ্লেক্স আক্ষরিক শর্টহ্যান্ড ব্যবহার করে অতিরিক্ত 5 টি অক্ষরও ছাঁটাই করেছি। যদিও কেবল রুবি ২.১ এবং এর উপরে কাজ করে।
ওআই

5

পাইথন 2.7: 45, নয়: 40, নয়: 38 - 32 = 6

এখানে খুব নতুন কিছু নয়, সাম্প্রতিক পাইথাগোরাস চ্যালেঞ্জ, কমপ্যাক্টনেসের জন্য ল্যাম্বদা এবং সিনট্যাক্স / প্রথম বন্ধনী হ্রাস করার জটিল জটিল ট্রিকের কেবলমাত্র একটি সংমিশ্রণ:

lambda x:abs(sum(a*(1-a%2+a%2*1j)for a in x))

আপডেট - কয়েকটি অক্ষর সংরক্ষণ করা হয়েছে। জটিল উপাদান 0/1 এ বাড়ানোর কৌশলটির জন্য @ ডিএসএমকে ধন্যবাদ জানাই।

lambda x:abs(sum(a*1j**(a%2)for a in x))

ঠিক আছে, প্রশ্নটি পড়া এবং 'ফাংশনের মূল অংশ' গণনা নিয়মকে স্বীকৃতি দেওয়া আরও 2 টি অক্ষর সংরক্ষণ করে:

def f(x):
    return abs(sum(a*1j**(a%2)for a in x))

আইপিথন পরীক্ষা:

In [650]: x = [20, 9, 4, 5, 5, 5, 15, 17, 20, 9]

In [651]: print (lambda l:abs(sum(a*(1-a%2+a%2*1j)for a in l)))(x)
78.4920378128

...

In [31]: def f(x):
   ....:     return abs(sum(a*1j**(a%2)for a in x))
   ....:

In [32]: f(x)
Out[32]: 78.49203781276162

চমৎকার! সমস্যাটি হ'ল absজটিল সংখ্যার জন্য ঠিক ঠিক তৈরি হয়েছিল
jozxyqk

4

এপিএল (27 - 46 = -19)

{.5*⍨+/2*⍨+⌿⍵×[1]z,⍪~z←2|⍵}

উদাহরণ:

      {.5*⍨+/2*⍨+⌿⍵×[1]z,⍪~z←2|⍵} 20 9 4 5 5 5 15 17 20 9
78.49203781

4

গণিত 31-32 = -1

√Tr[(Tr/@GatherBy[#,OddQ])²]//N &

GatherBy[#,OddQ] এমনকি প্যাকেট, বিজোড়-প্যাকেট তালিকা উত্পাদন করে।

অভ্যন্তরফলগুলি Trমোট দুটি সন্ধান করে, উভয়টি বর্গক্ষেত্রযুক্ত হয় এবং তারপরে যোগফল হয় (বাহ্যিক দ্বারা Tr)।

N অযৌক্তিক সংখ্যার (একটি পূর্ণসংখ্যার বর্গমূল) থেকে দশমিক সংখ্যায় রূপান্তর করে।

উদাহরণ

√Tr[(Tr/@GatherBy[#,OddQ])²]//N &[{9, 5, 5, 5, 15, 17, 9, 20, 4, 20}]

78,492


যদি f[n_]:=গণনায় অন্তর্ভুক্ত না করা হয় তবে একটি অতিরিক্ত অক্ষর সংরক্ষণ করা যায়।

    f[n_]:=
    √Tr[(Tr/@GatherBy[n,OddQ])²]//N 

উদাহরণ

f[{9, 5, 5, 5, 15, 17, 9, 20, 4, 20}]

78,492



3

পার্ল 5: (50 - 32 = 18)

map{$0[$_&1]+=$_}@ARGV;print sqrt$0[0]**2+$0[1]**2

+1 সম্ভবত আপনি sayপরিবর্তে printএবং <>পরিবর্তে @ARGV(কমান্ড-লাইনের পরিবর্তে এসটিডিএন-তে অর্গগুলি সরবরাহ করার সময়) ব্যবহার করে কয়েকটি অক্ষর সংরক্ষণ করতে পারেন
টমাস

@ টমাস sayএকটি ব্যবহার প্রয়োজন হবে না use? একটি আর্গুমেন্ট অ্যারে থেকে স্যুইচিংয়ের জন্য <>অতিরিক্ত প্রয়োজন split/ /,
সিলেস্টার

1) না, বলুন বৈশিষ্ট্যটি কমান্ড লাইন থেকে সক্ষম করা যাবে । 2) আমি অনুমান করি যে আপনি যদি প্রতি লাইনে প্রতিটি নম্বর সরবরাহ করেন তবে কোনও বিভাজনের প্রয়োজন হবে না।
টমাস

3

ডিসি 3 (35 - 32)

@ টমাসের পরামর্শ অনুসারে অ্যারে ব্যবহার করা। এটি কিছু অক্ষর সংরক্ষণ করে কারণ আমি প্রতিটি সংখ্যার সমতা গণনা করতে পারি এবং এটি সূচক হিসাবে ব্যবহার করতে পারি, পরিবর্তে ব্রাঞ্চিংয়ের পদ্ধতি হিসাবে প্যারিটির সাথে টুইট করার পরিবর্তে এবং সঠিক মানগুলিকে সঠিক রেজিস্টারে রাখি। এছাড়াও দেখা যাচ্ছে যে অ্যারে / ইনডেক্স ব্যবহার না করা হলেও অ্যারে আপনাকে 0 দেয়।

[d2%dsP;S+lP:Sz0<L]dsLx0;S2^1;S2^+v

ধরে নিই যে সংখ্যাগুলি ইতিমধ্যে স্ট্যাকের মধ্যে রয়েছে এবং ফলাফলটি হয়ে গেলে এটি কেবলমাত্র মান হিসাবে ছেড়ে যায়।

টেস্ট:

$ dc  
20 9 4 5 5 5 15 17 20 9  
[d2%dsP;S+lP:Sz0<L]dsLx0;S2^1;S2^+v 
p
78

ডিসি 16 (48 - 32)

বিজোড় এবং এমনকি সংখ্যার সঞ্চয় করতে o এবং e নিবন্ধ ব্যবহার করে প্রথম সংস্করণ ।

0dsose[dd2%rd1+2%*lo+so*le+sez0<x]dsxxle2^lo2^+v

1
ডিসি ব্যবহারের জন্য +1। হা হা sose;-) সম্ভবত আপনি ডিসি অ্যারে কমান্ড ব্যবহার করে সংক্ষিপ্ত ফলাফল পেতে পারেন ?
টমাস

1
@ টমাস একটি গুচ্ছ ধন্যবাদ! আমি প্রথমে কিছু বোকা কারণে অ্যারে ব্যবহার করার ধারণাটি বাতিল করে দিয়েছিলাম, তবে আপনার পরামর্শের পরে আমি আবার চেষ্টা করেছি এবং তারা খুব সহায়ক বলে প্রমাণিত হয়েছিল! সামঞ্জস্যভাবে প্যারিটি সঞ্চয় করতে একটি রেজিস্টার ব্যবহার করতে হয়েছিল, তবে সামগ্রিকভাবে আমি মনে করি এটি অনেক বেশি মার্জিত সমাধান।
ড্যানিরো

আপনাকে স্বাগতম, আমি জানতাম যে এটি সাহায্য করবে :-)
টমাস

2

পাইথন, 9 (55 - 46)

lambda x:sum([sum([i*(d-i%2) for i in x])**2for d in(0,1)])**0.5

ল্যাম্বডা ফাংশনটি ব্যবহার করে নতুন লাইন, ট্যাব এবং return

উদাহরণ:

x = [20, 9, 4, 5, 5, 5, 15, 17, 20, 9]
print (lambda x:sum([sum([i*(d-i%2) for i in x])**2for d in(0,1)])**0.5)(x)
78.4920378128

2

রুবি (66 - 32 = 34)

f=->a{o,e=a.partition(&:odd?).map{|x|x.reduce(:+)**2};(e+o)**0.5}

পরীক্ষা:

f.([20, 9, 4, 5, 5, 5, 15, 17, 20, 9])
=> 78.49203781276162 

1
Math.hypot *a.partition(&:odd?).map{|x|eval x*?+}কয়েকটি চর
ছাড়ে

2

রুবি, 55 - 46 = 9

f=->a{h=[0,0];a.map{|v|h[v%2]+=v};e,o=h;(e*e+o*o)**0.5}

টেস্ট:

f[[20, 9, 4, 5, 5, 5, 15, 17, 20, 9]] => 78.49203781276162`

1
আপনি এর জন্য একটি অ্যারে ব্যবহার করতে পারেন h: f=->a{h=[0,0];a.map{|v|h[v%2]+=v};e,o=h;(e*e+o*o)**0.5}
নীল স্লেটার

@ নিলস্ল্যাটার দোহ! ধন্যবাদ :)
দানিরো

2

প্রশ্ন, 34 - 32 = 2

{sqrt sum{x*x}(+/')(.)x(=)x mod 2}

q){sqrt sum{x*x}(+/')(.)x(=)x mod 2} 20 9 4 5 5 5 15 17 20 9
78.492037812761623

2

জুলিয়া, 40-46 = -6

বাস্তবায়ন

function f(l)
    a=sum(l);b=sum(l[l%2 .==1]);hypot(a-b,b)
end

আউটপুট

julia> f([20, 9, 4, 5, 5, 5, 15, 17, 20, 9])
78.49203781276161

2

কফিসক্রিপ্ট, (57 - 32 = 25)

Implementaion

f=(a)->r=[0,0];r[e%2]+=e for e in a;[e,o]=r;(e*e+o*o)**.5

আমি কফিসিপিটি জানি না, তবে আমি অবাক হয়েছি আপনি যদি স্থানটির পরে স্থানটি সরিয়ে +=নিয়ে পরিবর্তন 0.5করতে পারেন.5
ব্যবহারকারী 12205

2

গল্ফস্ক্রিপ্ট 30

.{2%},]{{+}*}/.@\-]{2?}/+2-1??

আমি মনে করি না যে গল্ফস্ক্রিপ্টের এইটিতে অনেক বেশি সুযোগ রয়েছে!


2

সি #: 69-32 = 37

double t=l.Sum(),o=l.Sum(x=>x*(x%2)),e=t-o;return Math.Sqrt(o*o+e*e);

সম্পূর্ণ কোড:

class Program
{
    static void Main(string[] args)
    {
        int[] list = { 20, 9, 4, 5, 5, 5, 15, 17, 20, 9 };
        Console.WriteLine(F(list));
        Console.ReadKey();
    }

    static double F(int[] l)
    {
        double t = l.Sum(),  // total sum of all elements
               o = l.Sum(x => x * (x % 2)),  // total of odd elements, if even %2 will return zero
               e = t - o; // even = total - odd
        return Math.Sqrt(o * o + e * e);
    }        
}

পিএস: কেবল মজাদার জন্য, এটিও কাজ করে, দুঃখের বিষয় এটি প্রয়োজনীয় অক্ষরের সংখ্যা পরিবর্তন করে না:

double t=l.Sum(),o=l.Sum(x=>x*(x%2));return Math.Sqrt(t*t-2*o*(t-o));

2

প্রোলোগ (73 - 32 = 41)

এখানে আমরা ': -' এর পরে সমস্ত কিছুই ফাংশন বডি হিসাবে গণনা করি।

f([],0,0,0).
f([H|T],O,E,X):-(1 is H mod 2,f(T,S,E,_),O is H+S,!;f(T,O,S,_),E is H+S),sqrt(O*O+E*E,X).

কল ফাংশন যেমন:

f([20, 9, 4, 5, 5, 5, 15, 17, 20, 9],_,_,X).

1

মতলব (44 - 46 = -2)

ফাংশন বডি 44 টি অক্ষর:

C=mod(A,2)>0;O=(sum(A(C))^2+sum(A(~C))^2)^.5

নীচে মোট ফাংশন:

function O = Q(A)
C=mod(A,2)>0;O=(sum(A(C))^2+sum(A(~C))^2)^.5
end

ফাংশন পরীক্ষা:

>> A = [20 9 4 5 5 5 15 17 20 9];
>> Q(A)

O =

   78.4920


ans =

   78.4920

>> B = [8 3 24 1 9 8 4 5 52];
>> Q(B)

O =

   97.6729


ans =

   97.6729

1

পাইথন 2.7 - 64-46 = 18

এটি কিছু zipযাদু ব্যবহার করে সংক্ষিপ্ত হতে পারে তবে আপাতত:

(sum(s for s in x if s%2)**2+sum(s for s in x if s%2==0)**2)**.5

সমাপ্তির জন্য, এটি প্রমাণিত হয়েছে আপনি জিপ যাদু করতে পারেন তবে এটির জন্য আপনার আরও ব্যয় হয় (কয়েকটি চরিত্র দ্বারা), সুতরাং উপরের স্ট্যান্ডগুলি, যদি না কেউ এর মধ্যে দুটির উন্নতি করতে পারে:

sum(map(lambda i:sum(i)**2,zip(*[[(0,i),(i,0)][i%2]for i in x])))**.5

1
যোগফল () এর ভিতরে আপনার [বর্গাকার বন্ধনীগুলি] লাগবে না।
দানিরো

1
আমি মনে করি জটিল প্লেনে কাজ করে আপনি এটিকে উল্লেখযোগ্যভাবে উন্নতি করতে পারেন, যেমন abs(sum(1j**(i%2)*i for i in x))
ডিএসএম

@ ডিএসএম এটি উন্মাদ! আমি ঐটা কখনোই চিন্তা করিনি. আমি এটি সম্পাদন করতে পারছি না এতে খুব বেশি পরিবর্তন হয়েছে, তবে দয়া করে তৈরি করুন এবং উত্তর দিন যাতে আমি এটিকে উজ্জীবিত করতে পারি!

@ ডিএসএম: আমার মনে একইরকম সংস্করণ ছিল তবে আপনার
অভিজিৎ

পাইথন কি গ্রহণ করে !s%2? এটি অন্তত একটি বর্ধিত পরিবর্তন যা আপনি গ্রহণ করতে পারেন
চার্লস

1

সি # 174

using System;class P{static void Main(){double[] L={20,9,4,5,5,5,15,17,20,9};double O=0,E=0;foreach(int i in L){if(i%2==0)E+=i;else O+=i;}Console.Write(Math.Sqrt(E*E+O*O));}}

সুপাঠ্য

using System;
class P
{
  static void Main()
  {
      double[] L = { 20, 9, 4, 5, 5, 5, 15, 17, 20, 9 };
      double O = 0, E = 0;
      foreach (int i in L)
      {
        if (i % 2 == 0)
            E += i;
        else
            O += i;
      }
      Console.Write(Math.Sqrt(E * E + O * O));
   }
}

চার্লির আউটপুট


আপনি একেবারেই গল্ফ করেন নি। আমরা এমন একটি সমাধান পাওয়ার চেষ্টা করছি যা বসের পাঞ্চকার্ডের সাথে খাপ খায়!
6:24

কেন না? দয়া করে ব্যাখ্যা.
মেরিন নাকারমি

2
আপনার কোডটি পুরো জায়গা জুড়ে পুরোপুরি ইন্টেন্টেড। কোড গল্ফ সর্বনিম্ন চরিত্রের গণনা সম্পর্কে। এই প্রশ্নটি কোড-গল্ফ ট্যাগ করা হয় ।
6:14

ধন্যবাদ রিকিং আমি এটি সম্পাদনা করেছি। আমার এখন কম চরিত্র রয়েছে :) :)
মেরিন নাকারমি

আমি মনে করি তালিকাটি হার্ডকড নয়, ইনপুট হিসাবে সরবরাহ করার কথা।
টিমউই

1

ক্লোজার = 87 - 46 = 41

(defn cd [v]
  (let [a apply ** #(* % %)]
    (Math/sqrt(a + (map #(** (a + (% 1)))(group-by even? v))))))

খুব কমই মূর্খ।


1

হাস্কেল, 64 সি - 46 = 18

c x=sqrt$fromIntegral$s(f odd x)^2+s(f even x)^2
f=filter
s=sum

পড়া খুব বেশি কঠিন নয় উদাহরণ রান:

*Main> c [1..10]
39.05124837953327

1

int e=0,o=0;for(int i :n){if(i%2==0)e+=i;else o+=i;}System.out.println(Math.sqrt(e*e+o*o));

জাভা কোডে আসল পদ্ধতি

public static void checkDigit(int[] n)
{
    int e=0,o=0;for(int i :n){if(i%2==0)e+=i;else o+=i;}System.out.println(Math.sqrt(e*e+o*o));
}

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

public class Sint
{
    public static void main(String[] args)
    {
        if(args == null || args.length == 0)
            args = "20 9 4 5 5 5 15 17 20 9".split(" ");
        int[] n = null;
        try
        {
            n = new int[args.length];
            for(int i=0; i<args.length; i++)
                n[i] = Integer.parseInt(args[i]);
            System.out.print("int array is: ");
            for(int dd : n) System.out.print(dd+", ");
            System.out.print("\n");
            checkDigit(n);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    public static void checkDigit(int[] n)
    {
        int e=0,o=0;for(int i :n){if(i%2==0)e+=i;else o+=i;}System.out.println(Math.sqrt(e*e+o*o));
    }
}

1

পিএইচপি 85-32 = 53

$a=$b=0;foreach($x as $q){if(($q%2)==0)$a=$a+$q;else$b=$b+$q;}echo sqrt($a*$a+$b*$b);

নবজাতক হয়ে উঠার জন্য এটিই সেরা। আমি নিশ্চিত কিছু ছোট সংক্ষিপ্ত সংস্করণ অবশ্যই থাকতে হবে।

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

কোডের একটি হ্রাস সংস্করণ হতে পারে:

foreach($x as$q)($q%2)?$a=$a+$q:$b=$b+$q;echo sqrt($a*$a+$b*$b);

এই সংস্করণটিতে কেবলমাত্র 64 টি (মূল উত্তরের চেয়ে 21 কম) অক্ষর রয়েছে।

বলেছেন, 64-32 = 32


এটি স্বাধীনভাবে হয়েছে, 58 বেস পেয়েছে:foreach($l as$m)$m%2?$o+=$m:$e+=$m;echo sqrt($o*$o+$e*$e);
ইয়োদা

1

ভিবি.net (81c - 11c = 70) - 32 = 38

শব্দটির উদার ব্যবহারের মাধ্যমে একটি ফাংশন লিখুন

Function(n)Math.Sqrt(n.Sum(Function(x)x Mod 2=0)^2+n.Sum(Function(x)x Mod 2=1)^2)

1

এক্সকিয়ারী, (63 - 32 = 31)

বাস্তবায়ন

declare default function namespace 'http://www.w3.org/2005/xpath-functions/math';
declare function local:f($s) {
  sqrt(pow(fn:sum($s[. mod 2=0]),2)+pow(fn:sum($s[. mod 2=1]),2))
};

আউটপুট

local:f((20, 9, 4, 5, 5, 5, 15, 17, 20, 9))

বেসএক্স এক্সকিউয়ারি প্রসেসর হিসাবে ব্যবহৃত হয়েছিল।


1

এরলং: 82 সি - 32 = 50

fun(L)->F={lists,sum},O=[X||X<-L,X rem 2>0],E=F(L--O),math:sqrt(F(O)*F(O)+E*E)end.

এরলং এর জন্য দুর্দান্ত নয়। বেশিরভাগ শর্টকাটগুলি আরও বেশি অক্ষর হয়ে থাকে (টিপলস ইত্যাদি)

নোটের একমাত্র আসল জিনিস:

  • {lists,sum}এটি একটি ফাংশন রেফারেন্স lists:sumএবং বলা যেতে পারে
  • এমনকি সংখ্যাগুলি সম্পূর্ণ তালিকা থেকে বিজোড় সংখ্যাগুলির তালিকা বিয়োগ --( তালিকা বিয়োগ ) দ্বারা গণনা করা হয়

কল করে কল করতে পারেন:

fun(L)->F={lists,sum},O=[X||X<-L,X rem 2>0],E=F(L--O),math:sqrt(F(O)*F(O)+E*E)end([20,9,4,5,5,5,15,17,20,9]).

আউটপুট: 78.49203781276162


1

Haskell,

57 - 32 = 25

ক্রেজেডগ্রিমলিনসের উত্তরটির সরাসরি অপ্টিমাইজেশন:

c x=sqrt$read$show$sum(odd%x)^2+sum(even%x)^2
(%)=filter

নিখুঁতকরণ:

  • read$showএর চেয়ে কম fromIntegral- 3 টি অক্ষর
  • s=sum\nএবং দু'জনের sমোট দৈর্ঘ্য 8 sumটি হয় , দু'জনের মাত্র 6 টি অক্ষর। - 2 অক্ষর
  • অপারেটরটিতে ফিল্টার তৈরি করা সাদা জায়গার প্রয়োজন - 2 টি অক্ষর

আমি অপারেটরের সাথে আরও স্টাফ যুক্ত করার চেষ্টা করেছি, তবে এটি শেষ পর্যন্ত শেষ হয়েছে:

c x=sqrt$read$show$odd%x+even%x
(%)=(((^2).sum).).filter
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.