কোনও ভোটের সি-ফ্যাক্টর সন্ধান করুন


11

এই চ্যালেঞ্জটিতে আপনি সি-ফ্যাক্টর নামক একটি সংখ্যা বের করে অন্য ভোটের একটি অ্যারে দিয়ে একটি ভোট কতটা বিতর্কিত তা নির্ধারণ করবেন। আপনি জিজ্ঞাসা সি-ফ্যাক্টর কি?

ঠিক আছে, কল্পনা করুন আপনি একটি নির্বাচনে একাধিক ভোট পেয়েছেন। আমরা ব্যবহার করব 1এবং 0চ্যালেঞ্জ অনুরোধে জন্য একটি নির্বাচনে দুটি ভিন্ন প্রার্থীদের প্রতিনিধিত্ব করতে। আমাদের নমুনা নির্বাচনের দশটি ভোট এখানে:

0110111011

এখন, বলুন আমরা প্রার্থীর পক্ষে যে কোনও ভোটের সি-ফ্যাক্টরটি খুঁজতে চাই 0। আমরা নিম্নলিখিত ফাংশন দিয়ে এটি করতে পারি:

(,বনাম)=একটিগুলি(-মিএকটিএন(বনাম))

ইন , ভোট আমরা জন্য সি-ফ্যাক্টর নির্ধারণ করতে চান, এবং ভোট একটি অ্যারে। সুতরাং, আমাদের ফাংশনটি ব্যবহার করে, প্রার্থীর পক্ষে কোনও ভোটের সি-ফ্যাক্টর পেতে :ov0

(0,[0,1,1,0,1,1,1,0,1,1])=0.7

একটি নিম্ন সি-ফ্যাক্টর দেখায় যে অন্যান্য ভোটের তুলনায় ভোট কম বিতর্কিত ছিল। সুতরাং, প্রার্থীর 0পক্ষে ভোট অন্য প্রার্থীর চেয়ে ভোটের চেয়ে আলাদা 1। তুলনায়, প্রার্থীর 1ভোটের সি-ফ্যাক্টর , সুতরাং এটি কম বিতর্কিত কারণ এটি অন্যান্য ভোটের মতো।0.3

চ্যালেঞ্জ

একটি ভোটের ফলাফল প্রদত্ত ভোটের সি-ফ্যাক্টর নির্ধারণ করতে একটি ফাংশন লিখুন ।(,বনাম)ov

  • oঅবশ্যই একটি পূর্ণসংখ্যা হতে পারে, হয় 0বা হয় 1

  • v শূন্য এবং এর সমন্বয়ে নির্ধারিত দৈর্ঘ্যের একটি অ্যারে (বা ভাষার স্পেসিফিকেশনের উপর নির্ভর করে অনুরূপ ধারক প্রকারের) হতে হবে।

  • ফাংশনটির উপরের সূত্রটি বা কোনও পরিবর্তিত পদ্ধতি ব্যবহার করে ফাংশনটির পরামিতিগুলি প্রদান করে ফলাফলটি সি-ফ্যাক্টরটি কনসোলে ফিরে আসে বা প্রিন্ট করা উচিত।

শুভকামনা! সর্বনিম্ন বাইট জয় (পাঁচ দিনের মধ্যে বিজয়ী নির্বাচিত)।


mean(v)আপনার উদাহরণে 0.7 এর সমান নয় ?
হাইপার নিউট্রিনো

@ হাইপারনিউটারিনো হ্যাঁ ব্যাপারটা কি?
কানেক্টইউরচার্জ

কিভাবে abs(0 - 0.7)সমান 0.3?
হাইপারনিউটারিনো

আহ। উদাহরণ স্থির। আমি দুটি নম্বর উল্টো করে দিয়েছি
কানেক্টিওরচার্জ

ওহ ঠিক আছে. স্পষ্ট করার জন্য ধন্যবাদ!
হাইপার নিউট্রিনো

উত্তর:



10

আর , 23 বাইট

function(o,v)mean(o!=v)

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

(অর্থাত ) vথেকে পৃথক মানের অনুপাতের গণনা করতে চ্যালেঞ্জটি ফোটে । তাই আমরা ব্যবহার এড়াতে পারি ।omean(xor(o,v))abs


2
নির্বিঘ্নে ভোটদানের উপস্থাপনার জন্যও কাজ করে।
অপরাধমূলকভাবে

6

এপিএল (ডায়ালগ ইউনিকোড) , 9 8 5 বাইট

≠⌹⊢=⊢

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

নামবিহীন ট্রেন। বাইট সংরক্ষিত থাকার জন্য @ অ্যাডমকে ধন্যবাদ, এবং 3 বাইটের জন্য @ জিএনএনকে ধন্যবাদ!

কিভাবে:

≠⌹⊢=⊢  Anonymous Train
      The right argument (⍵)
  ⊢=   Equals itself. Generates an array of 1s
      XOR left (⍺) and right args; generates  or (not ⍵), depending on ⍺.
      Divide these matrices.

4
⌹: আপনি 5. ইঙ্গিতটি মধ্যে এটা করতে পারেন
ngn


3

2
আমি 30 সেকেন্ড খুব দেরি .. আমার অর্ডার ছিল বিভিন্ন যদিও নই, প্রথম αতারপর ÅA; পি
কেভিন Cruijssen

2
@ কেভিন ক্রুজসেন আমি আপনার সমাধানটি রিয়েল-টাইমে আসতে দেখেছি, আমি মন্তব্য করতে শুরু করেছি এবং এটি প্রায় 30 সেকেন্ডের মধ্যে মুছে ফেলা হয়েছে। অত্যধিক হাসিখুশি!
কানেক্টইউরচার্জ

@ কেভিন ক্রুজসেন আমি সত্যিই বুঝতে পারি না যে দুটি আদেশ একইভাবে কীভাবে কাজ করে ... :-) আমার 05 এবি 1 ই জ্ঞান খুব ভাল নয়
লুইস মেন্ডো

1
@ কেভিন ক্রুজসেন আহ, আমি দেখছি। আমাকে কী বিভ্রান্ত করছিল তা হল দুটি পদ্ধতির স্বেচ্ছাসেবী সংখ্যার জন্য আলাদা ফলাফল দেয়; তবে 0/1 ইনপুটগুলির জন্য তারা সম্মত বলে মনে হচ্ছে। উদাহরণ
লুইস মেন্ডো

2
@ লুইস মেন্ডো আহ, হ্যাঁ, আপনি সত্যই বলেছেন। আমি এটি কয়েকটি অন্যান্য পূর্ণসংখ্যার সাথে পরীক্ষা করেছি, তবে সেগুলি অর্ডার নির্বিশেষে একই ফলাফল দিয়েছে (তবে আপনার পরীক্ষার কেসটি 0.8 এর চেয়ে আলাদা)। যদি ইনপুটটিতে 0/ এর বাইরেও অন্য কিছু থাকতে পারে তবে 1আপনার প্রথমে গড়টি পাওয়ার পদ্ধতির এবং তারপরে পার্থক্যটি সঠিক যখন আমরা এটিকে চ্যালেঞ্জ বর্ণনার সূত্রের সাথে তুলনা করি। কেবল 0s / 1 গুলি সহ কিছু বিকল্প 3-বাইটারও সম্ভব, যেমন পছন্দ হয় ÊÅA
কেভিন ক্রুইজসেন


2

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

Mean@`/=

এটি অনলাইন চেষ্টা করুন! হিসাবে যুক্তি গ্রহণ করে f[o, v]

ভয়াবহ আসল কিছুই।

বিকল্প পদ্ধতি

11 বাইট: Average@`/=

11 বাইট: ${1-x~y/#y} গণনা এর ঘটনার xমধ্যে yদৈর্ঘ্য দ্বারা বিভক্ত y, তাহলে সেই থেকে subtracts 1

11 বাইট: {1-_2~_/#_} (এটির জন্য যুক্তিগুলি বিপরীত)

15 বাইট: ${Sum[x/=y]/#y} উপরের আরও স্পষ্ট সংস্করণ, ছাড়াই Average



1

প্রোটন , 26 বাইট

(o,v)=>1-v.count(o)/len(v)

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

আউটপুটটি একটি ভগ্নাংশ কারণ প্রোটন আরও ভাল নির্ভুলতার জন্য নিয়মিত পাইথন সংখ্যার পরিবর্তে সিম্পি ব্যবহার করে।

(-7 বাইট; অ্যাবস-ডিফ বলতে বোঝায় অ্যাবস-ডিফের গড়ের চেয়ে কম; আমি আসলে বোবা)

-1 বাইট রড ধন্যবাদ


@ রড আমি 1/0 ইনপুট সীমাবদ্ধতার জন্য কীভাবে অনুকূল করতে পারি তা জানার চেষ্টা করছিলাম কিন্তু ব্যর্থ হয়েছিল। ধন্যবাদ!
হাইপার নিউট্রিনো

1

পার্ল 6 , 20 বাইট

{@_.sum/@_}o(*X!= *)

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

* X!= *এটি একটি বেনাম ফাংশন যা এর দুটি যুক্তির তুলনায় সমান ক্রস পণ্য নেয়। এটি বুলিয়ান্সের ক্রম উত্পাদন করে; উদাহরণস্বরূপ, 1 X!= (1, 0, 1)মূল্যায়ন (False, True, False)

{ @_.sum / @_ }এটি অন্য একটি বেনামে ফাংশন যা এর যুক্তিগুলির গড় দেয়। বুলিয়ান সংখ্যাসূচকভাবে এবং এর থেকেও Trueমূল্যায়ন করে ।1False0

oঅপারেটর এক মধ্যে ঐ দুই ফাংশন composes।


1

তালিকাভুক্ত , 3 বাইট

nÆm

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

nÆm  Main Link
n    Not Equals (returns a list of whether or not each element is unequal to to the value)
 Æm  Arithmetic Mean

ভাষাটি জেলি দ্বারা খুব ভারীভাবে অনুপ্রাণিত হয়েছে যে এটি সম্ভবত আমার মতো আরও কীভাবে আমার নিজের কোড দিয়ে জেলি পার্স করা হয়েছে তার কাঠামোটি পুনরায় তৈরি করার চেষ্টা করার মতো পরীক্ষার চেষ্টা করছেন।

-১ বাইট মিঃ এক্সকোডারকে ধন্যবাদ


আপনি 1 টি সংরক্ষণ করার nপরিবর্তে ব্যবহার করতে পারেন _...A( এটি অনলাইনে ব্যবহার করে দেখুন! )
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার ওহ সুন্দর। হ্যাঁ আমি এই লোলটি তৈরির পরে! = ট্রিকটি বুঝতে পেরেছি। ধন্যবাদ!
হাইপারনিউট্রিনো

1

রেটিনা 0.8.2 , 27 বাইট

(.),((?(\1)|()).)*$
$#3/$#2

এটি অনলাইন চেষ্টা করুন! একটি ভগ্নাংশ আউটপুট দেয়। ব্যাখ্যা: প্রথম গোষ্ঠী ক্যাপচার করে oএবং দ্বিতীয় গ্রুপটি প্রতিটি প্রবেশকে ক্যাপচার করে v, শর্তসাপেক্ষে তৃতীয় গোষ্ঠী কেবল ভোট গ্রহণের ক্ষেত্রে ভিন্ন হলেও ক্যাপচারের বিষয়টি নিশ্চিত করে। $#নির্মাণ তারপর প্রাসঙ্গিক যেমনটি গণনা ফেরৎ যেমন ইচ্ছা।








0

জাভা 8, 47 বাইট

v->o->(o-=v.get().sum()/v.get().count())<0?-o:o

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

বা বিকল্পভাবে:

v->o->Math.abs(o-v.get().sum()/v.get().count())

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

উভয় জন্য ইনপুট একটি হয় Supplier<DoubleStream>ভোট তালিকার জন্য vএবং doubleভোট o

ব্যাখ্যা:

v->o->                 // Method with DoubleStream-Supplier & double parameters and double return
  (o-=v.get().sum()    //  Get the sum of the DoubleStream-Supplier
      /v.get().count() //  Divide it by the amount of items in the DoubleStream-Supplier
      )                //  Subtract this from `o`
       <0?-o:o         //  And get the absolute value of this updated value `o`

0

কমন লিসপ 49 বাইট

সমাধান:

(defun c(o v)(abs(- o(/(reduce'+ v)(length v)))))

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

ব্যাখ্যা:

(defun c(o v)
  (abs (- o (/ (reduce '+ v) (length v)))))
  • হ্রাস হ্রাস সমস্ত তালিকা উপাদানগুলির উপর একটি ফাংশন প্রয়োগ করে (+ এই ক্ষেত্রে)
  • বিশ্রাম কেবল বেস ফাংশন, অ্যাবস (ও - গড় (ভি))


0

পাইথ, 4 বাইট

aE.O

ব্যাখ্যা:

       ( implicitly set Q = eval(input()) )
a      Absolute difference between
 E     eval(input()) (this is the second line of input taken)
  .O   and the average of
    Q  (implicit) Q (the first line of input)

ইনপুটটি ফর্ম্যাটে রয়েছে:

[0,1,1,0,1,1,1,0,1,1]
0

প্রথমে ভোটের অ্যারে সহ এবং প্রার্থী দ্বিতীয়

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

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