ভূমিকা
এই সাইটটি দ্রুত কোড স্নিপেটের একটি বিশাল ডেটাসেট তৈরি করছে, সুতরাং আসুন এটি দিয়ে কিছু করি!
এখানে একটি তথ্য ফাইল । এটিতে এই সাইট থেকে নেওয়া 113 টি ভাষার 9,066 টি অনন্য ভাষা + স্নিপেট জোড়া রয়েছে। ফর্ম্যাটটি ট্যাব-বিচ্ছিন্ন (ভাষা-ট্যাব-স্নিপেট) স্নিপেটের সমস্ত নতুনলাইন সহ <LF>
প্রতিস্থাপন করা হয়েছে এবং 4 টি স্পেসের সাথে সমস্ত ট্যাব প্রতিস্থাপন করা হয়েছে। প্রতিটি ভাষার জন্য কমপক্ষে 5 টি স্নিপেট রয়েছে।
[আপডেট: আমি পূর্বে মিস করা কিছু পাইথন এবং রেজিএক্সপ ভার্সনগুলি মার্জ করার জন্য ডেটা ফাইলে সামান্য পরিবর্তন করেছি - উপরের লিঙ্কটি আপডেট করা হয়েছে]
চ্যালেঞ্জ
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা একটি কোড স্নিপেট নেয় এবং এতে লেখা ভাষাকে আউটপুট দেয় (বিশদগুলির জন্য নীচে দেখুন)। আপনার উত্সের মোট আকার + আপনার প্রয়োজনীয় কোনও ডেটা অবশ্যই 300 বাইট বা তার চেয়ে কম হওয়া উচিত এবং আপনার প্রোগ্রামের নিজস্ব উত্স কোড দেওয়ার সময় অবশ্যই সঠিক ভাষাটিকে আউটপুট দিতে হবে । সর্বাধিক নির্ভুলতা (উপরের ডেটাসেটের সর্বাধিক সঠিক উত্তর) জয়ী।
বিধি
- আপনার উত্স কোড, সংস্থানসমূহ এবং কোনও প্রয়োজনীয় সংকলন / রানটাইম পতাকাগুলির মোট আকার 300 বাইটের বেশি হবে না।
- আপনার উত্তর উপরের ডেটাসেটের বিরুদ্ধে পরীক্ষা করা হবে; এটিকে ইনপুট হিসাবে একটি "স্নিপেট" মান দেওয়া হবে এবং এর আউটপুটটি ডেটাসেট অনুসারে "সঠিক" আউটপুটটির সাথে তুলনা করা হবে। এটি ডেটাসেটের সমস্ত এন্ট্রিগুলির জন্য পুনরাবৃত্তি হবে এবং সঠিক উত্তরের চূড়ান্ত সংখ্যাটি আপনার স্কোর।
- আপনি ইনপুট এনকোডিং চয়ন করতে পারেন - আমি ইউটিএফ -8 ধরে নেব, সুতরাং আপনার যদি অন্য কোনও এনকোডিংয়ের প্রয়োজন হয় তবে আপনার উত্তরে এটি উল্লেখ করুন।
<LF>
নতুন লাইনের জন্য আপনাকে প্রতিস্থাপনটি ব্যবহার করার দরকার নেই ; যদি আপনার এন্ট্রিটি আক্ষরিক নিউলাইনগুলি (চারিদিক 10) হিসাবে নতুন লাইনগুলি পাওয়ার প্রত্যাশা করে, তবে আপনার উত্তরে এটি নির্দিষ্ট করুন।- আপনার এন্ট্রিটি অবশ্যই মনে করবে যে ভাষাটি ইনপুট স্নিপেটটি লিখিত আছে বলে মনে করে lots আপনার উত্তরের ম্যাপিংগুলি কেবল নোট করুন।
- প্রতিটি ভাষার জন্য আপনার কেবল 1 আউটপুট ম্যাপিং থাকতে পারে (যেমন 3 এর অর্থ "জাভা" হয় তবে আপনার 4 টি অর্থ "জাভা "ও থাকতে পারে না)।
- যখন তার নিজস্ব উত্স কোড দেওয়া হয়, আপনার প্রোগ্রামকে অবশ্যই সঠিক উত্তর তৈরি করতে হবে (এতে লেখা ভাষায় অবশ্যই আউটপুট আনতে হবে)।
- আপনাকে ডেটাসেটে সমস্ত ভাষা সমর্থন করার দরকার নেই, এবং আপনি চাইলে অতিরিক্ত ভাষাও সমর্থন করতে পারেন (যেমন আপনার ডাটাবেসের কোনও একটি ভাষাতে প্রবেশ নেই)।
- আপনার প্রোগ্রামটি অবশ্যই ডিটারমিনিস্টিক (দু'বার একই ইনপুট সরবরাহ করতে হবে একই আউটপুট উত্পাদন করতে হবে)।
টাই-ব্রেকিং
- একটি প্রবেশিকা জেতা না হওয়া পর্যন্ত ডেটাসেট হ্রাস করে টাইগুলি সিদ্ধান্ত নেওয়া হবে। সর্বাধিক জনপ্রিয় ভাষার জন্য সমস্ত স্নিপেট সরিয়ে ডেটাসেট হ্রাস করা হবে (অর্থাত বিরল ভাষার যথার্থতার সাথে বন্ধনগুলি ভেঙে দেওয়া হয়েছে)। উদাহরণস্বরূপ, যদি এ এবং বি পূর্ণ ডেটাসেটে 70% স্কোর করে তবে সমস্ত পাইথনের স্নিপেটগুলি সরানো হবে। যদি A এবং B উভয়ই এখন 60% স্কোর করে তবে সিজেম সরানো হবে। যদি এখন স্কোর হয় 50% তবে বি স্কোর 55%, বি বিজয়ী।
- যদি 100% নির্ভুলতা অর্জন করা হয় তবে একই ভাষার জন্য আরও নমুনা সম্বলিত সেকেন্ড (ব্লাইন্ড) ডেটাসেট ব্যবহার করে সম্পর্কগুলি স্থির করা হবে।
উদাহরণ 1
পাইথন লিপি:
print("python")
এই লিপিটি সফলভাবে "অজগর" উত্পাদন করে যখন তার নিজস্ব উত্স কোড দেওয়া হয়, সুতরাং এটি বৈধ। ডেটাসেটে এটি স্কোর করে 1008/9066 = 11.1%
উদাহরণ 2
জাভাস্ক্রিপ্ট ফাংশন:
function f(s){return /function/.test(s)?1:2}
ম্যাপিংগুলি 1 → জাভাস্ক্রিপ্ট, 2 → পাইথন সহ আবার এটি সফলভাবে তার নিজস্ব উত্সের জন্য 1 ("জাভাস্ক্রিপ্ট") উত্পাদন করে এবং ডেটাসেটে এটি স্কোর করে 1092/9066 = 12.0%
কোথা থেকে তথ্য এসেছে?
আমি এই সাইটে [কোড-গল্ফ] চ্যালেঞ্জগুলি থেকে নমুনাগুলি টানতে একটি SEDE কোয়েরি তৈরি করেছি । ফলাফলের 10,000 টি উত্তর থেকে আমি প্রত্যেকের কোড এবং ভাষার নাম সন্ধানের জন্য হ্যাক-একসাথে পাইথন স্ক্রিপ্ট ব্যবহার করেছি, তারপরে 5 টিরও কম উদাহরণ দিয়ে কোনও ভাষা ফিল্টার করেছি। ডেটা 100% পরিষ্কার নয় (আমি জানি এটির কিছু নন-কোড স্নিপেট রয়েছে এটি) তবে যথেষ্ট ভাল হওয়া উচিত।
বছরের প্রথম থেকেই এই চ্যালেঞ্জ দ্বারা অনুপ্রাণিত: কে বলেছে? ২০১ 2016 সালের রাষ্ট্রপতি নির্বাচন
আংশিকভাবে কী ভাষা সম্পর্কিত?