স্মুথ বনাম চুঙ্কি বনাম ব্রোকেন স্কুইগলস


12

চুনকি বনাম স্মুথ স্ট্রিংয়ের উপর ভিত্তি করে ।

স্কুইগলসগুলি /\_/\/\__/\/\/\/\_/\_/\যখন আপনি সত্যিই বিরক্ত হন তখন কোনও কীবোর্ড তৈরি করতে মজা হয়। তবে সমস্ত স্কিগগলস সমানভাবে তৈরি হয় না। কিছু স্কিগগলগুলি মসৃণ, পছন্দসই \___/, এবং কিছু চমকপ্রদ, যেমন /\/\/\/\। অন্যেরা ঠিক নিখুঁতভাবে ভেঙে গেছে, যেমন////_\\\

প্রতিটি Nঅক্ষরের N-1স্কুইগল- এর ভিতরে স্কুইগল-জংশন রয়েছে। প্রতিটি স্কিগল-জংশনকে তিন ধরণের একটিতে শ্রেণিবদ্ধ করা হয়:

  • মসৃণ (কোণ> "90 ডিগ্রি"):

    \_ __ _/

  • খাঁটি (কোণ = "90 ডিগ্রি")

    /\ \/

  • ভাঙা (যে কোনও কিছুই সংযুক্ত না)

    // \\ /_ _\

আসুন সংজ্ঞায়িত স্নিগ্ধতা সংযোগস্থলের যে মসৃণ, সঙ্গে আছে অনুপাত হতে chunkiness এবং brokenness একভাবে সংজ্ঞায়িত। প্রতিটি মান 0এবং এর মধ্যে থাকে 1। স্কুইগলের মসৃণতা, কুণ্ডুলিভাব এবং ভাঙনের যোগফল সর্বদা 1 এর সমান।

উদাহরণস্বরূপ, স্কুইগলে /\/\\_//\_3 টি মসৃণ জংশন, 4 টি চুনকি জংশন এবং 2 ভাঙা জংশন রয়েছে। এটি এইভাবে 0.3333মসৃণ, 0.4444চঞ্চল এবং 0.2222ভাঙা।

কেবল একটি অক্ষরের খালি স্ট্রিং এবং স্ট্রিংগুলির অপরিবর্তিত মান রয়েছে, সমস্ত ইনপুট কমপক্ষে 2 টি অক্ষর দীর্ঘ হবে।

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম লিখুন যা স্বেচ্ছাসেবী দৈর্ঘ্যের একটি দ্বিধাবিঘ্নে লাগে এবং এর দু'টি মসৃণতা, কুণ্ডলীতা এবং ভাঙ্গনের মানকে আউটপুট করে।

  • আপনি STDIN, কমান্ড লাইন, বা একটি স্ট্রিং আর্গুমেন্ট হিসাবে ইনপুট সহ একটি প্রোগ্রাম বা ফাংশন লিখতে পারেন।
  • আপনি ধরে নিতে পারেন ইনপুটটি কমপক্ষে দৈর্ঘ্য> = 2 এবং এটি কেবলমাত্র /\_একটি alচ্ছিক ট্রেলিং নিউলাইন সহ অক্ষর নিয়ে থাকে।
  • দুটি মুদ্রণ (বা কোনও ফাংশন হলে ফিরে আসুন) দুটি বৃত্তাকার বা কাটা কাটানো কমপক্ষে 4 দশমিকের নির্ভুলতার দিকে ভাসে। সত্যিকারের মানটি যদি হয় তবে 2/3গ্রহণযোগ্য মানগুলির মধ্যে 0.6666এবং 0.6667এমনকী জিনিসগুলির মধ্যে যে কোনও মান অন্তর্ভুক্ত থাকে 0.666637104। যদি সঠিক মান হয় তবে যে 1/3কোনও উত্তর রয়েছে 0.3333তা বৈধ। মান একের চেয়ে কম হলে আপনি পিছনের জিরো বা অগ্রণী শূন্যটি ছেড়ে দিতে পারেন।
  • আপনার পছন্দের হিসাবে তিনটি মানের যেকোন জুড়ি আউটপুট করুন, কেবল দুটি এবং কোন ক্রমে তা নিশ্চিত করে বলা উচিত।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

উদাহরণ

/\/\\/\//\\0স্বাচ্ছন্দ্য 0.7, কুঁকড়ে যাওয়া , ভ্রষ্টতা0.3

_/\\_/\\/__/\\\//_0.29411764705স্বাচ্ছন্দ্য 0.29411764705, কুঁকড়ে যাওয়া , ভ্রষ্টতা0.41176470588

//\\__/_\/0.3333333স্বাচ্ছন্দ্য 0.2222222, কুঁকড়ে যাওয়া , ভ্রষ্টতা0.4444444

বোনাস প্রশ্ন: আপনি কোনটি পছন্দ করেন, মসৃণ বা চুনকি বা ভাঙা কাঠবিড়ালি?


তিনটিই আউটপুট দেওয়ার জন্য কোনও বোনাস থাকতে পারে, বা কেবল দুটি বেছে নেওয়ার জন্য আপনার কোনও নির্দিষ্ট কারণ আছে?
Aᴄʜᴇʀᴏɴғᴀɪʟ

1
@ কলডোসিটি 2 তৃতীয় সংজ্ঞায়িত করতে যথেষ্ট যেহেতু তারা 1 এর সমষ্টি
ট্রাইকোপলাক্স

2
পি: - @trichoplax ভাল পয়েন্ট স্পষ্টত আমি অত্যন্ত দীর্ঘ golfing করে থাকেন, আমি সহজ জিনিস আর হৃদয়ঙ্গম করতে পারে না
Aᴄʜᴇʀᴏɴғᴀɪʟ

উত্তর:


2

পাইথ, 25 বাইট

mcl@.:d2.:z2tlzc2"\__//\/

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

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


2

জাপট, 42 বাইট

U=U¬ä@2+"\\/\\__/"bX+Y)f2};[T2]£U¬fX l /Ul

আউটপুটস টুথনেস, চুঁচুটে। এটি অনলাইন চেষ্টা করুন!

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

            // Implicit: U = input string
U=UŠ@   }  // Set U to U split into chars, with each pair mapped by this function:
"..."bX+Y)  // Take the index in this string of the two chars concatenated.
            // This is 0-1 for chunky, 2-4 for smooth, and -1 for broken.
2+    f2    // Add two and floor to the nearest multiple of 2.
            // This is now 2 for chunky, 4 or 6 for smooth, and 0 for broken.
[T2]£       // Map each item X in [0,2] through this function:
U¬fX l      //  Count the occurances of X in U.
/Ul         //  Divide by U.length.
            // Implicit: output last expression

অ-প্রতিযোগিতামূলক সংস্করণ, 36 বাইট

U=Uä@2+"\\/\\__/"bZ)f2};[T2]£UèX /Ul

মূলত অন্যের মতো একইভাবে কাজ করে, কয়েকটি ছোট ছোট পরিবর্তন করে:

  • äএখন স্ট্রিং উপর কাজ করে। চরগুলি ক্রমে ক্রিয়াকলাপে প্রেরণ করা হয় (X, Y, X+Y)
  • è স্ট্রিং / অ্যারেতে আর্গুমেন্টের সংখ্যার সংখ্যা গণনা করে।

1

পাইথন 3, 149 বাইট

এটি মসৃণতা এবং মজাদারতা আউটপুট করে।

def f(s):
 for i in"012":s=s.replace("\_/"[int(i)],i)
 a=len(s)-1;t=["bscbssbbc"[int(s[i:i+2],3)]for i in range(a)]
 for x in"sc":print(t.count(x)/a)

Ungolfed:

def f(s):
    for i in "012":
        s = s.replace("\_/"[int(i)], i)
    a = len(s) - 1
    t = []
    for i in range(a):
        t.append("bscbssbbc"[int(s[i:i+2],3)])
    for x in "sc":
        print(t.count(x) / a)

1

রুবি, 71

আউটপুট মসৃণতা, শঙ্কিততা।

সর্বনিম্ন মসৃণ এবং মজাদার স্ট্রিং নেয় এবং প্রাথমিক স্ট্রিংয়ে প্রতিটি দ্বি-চরিত্রের স্ট্রিংয়ের জন্য তাদের অনুসন্ধান করে।

আটটি বাইটের জন্য কেভিন লউকে ধন্যবাদ !

->x{%w{\\__/ /\\/}.map{|t|(0..n=x.size-2).count{|i|t[x[i,2]]}/(n+1.0)}}

1
(0..x.size-2).count{|i|t[x[i,2]]}ওভার 5 বাইট সংরক্ষণ x.chars.each_cons(2).count{|i|t[i*'']}। এবং এখন আপনি ফাংশনটিতে x.sizeদুবার ব্যবহার করছেন , এটিকে একটি ভেরিয়েবলের জন্য বরাদ্দ করছেন এবং এটি ব্যবহার করে একটি অতিরিক্ত বাইট সংরক্ষণ করে।
মান কালি

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