100 টি অক্ষরের মধ্যে ফরাসি ভাষায় মাস্কুলাইন এবং ফেমিনাইন বিশেষ্যগুলির মধ্যে পার্থক্য করুন


21

আপনি 100 টি অক্ষরের মধ্যে একটি খুব ছোট প্রোগ্রাম লিখতে হবে। আপনার প্রোগ্রামটি অবশ্যই পুংলিঙ্গ এবং মেয়েলি ফরাসি বিশেষ্যগুলির মধ্যে পার্থক্য করতে হবে। আউটপুটটি হওয়া উচিত unযদি এটি পুংলিঙ্গ হয় এবং uneএটি মেয়েলি হয়। প্রায়শই এমন কয়েকটি পরিসংখ্যানগত নিয়ম রয়েছে যা আপনি অনুসরণ করতে পারেন (যেমন এটি যদি কোনও "ই" এ শেষ হয় তবে এটি সম্ভবত পুংলিঙ্গের চেয়ে মেয়েলি বেশি)।

ইনপুট :

একটি ফরাসি শব্দ; এটিতে উচ্চারণের সাথে ছোট ছোট অক্ষরগুলি সহ কোনও ছোট হাতের অক্ষর এবং ড্যাশ থাকতে পারে।

উদাহরণ ইনপুট: ami

আউটপুট :

unশব্দটি যদি পুরুষালি হয় এবং uneশব্দটি মেয়েলি হয়।

উদাহরণ আউটপুট: un

আপনি প্রতিটি শব্দ সঠিক পেতে হবে না; আপনার লক্ষ্যটি যথাসম্ভব নির্ভুল হওয়া।

স্কোরিং : আপনার উত্তরটি অবশ্যই 100 টি অক্ষরের মধ্যে থাকা উচিত । যেমন বিবৃতি printবা console.logবা alertনা না আপনার মোট বাইট অংশ হিসেবে গণ্য করা হয়। আপনি এই কাজটি সম্পাদন করে এমন কোনও ফাংশন বা পদ্ধতিও লিখতে পারেন, সেক্ষেত্রে প্রথম কয়েকটি বাইট (উদাহরণস্বরূপ f=x=>) যা ফাংশন ঘোষণার অংশ, আপনার মোট গণনা হয় না। আপনার মোট স্কোরটি ভুল উত্তরের সংখ্যা। টাইজগুলি কোডের আকারে ভেঙে যায়।

বিশেষ্যগুলির সাথে পরীক্ষা করার জন্য:

un ami
un café
un chapeau
un concert
un crayon
un garage
un garçon
un lit
un livre
un mari
un musée
un oncle
un ordinateur
un pantalon
un piano
un pique-nique
un portable
un père
un sandwich
un saxophone
un stade
un stylo
un théâtre
un téléphone
un voisin
une botte
une boum
une chaise
une chaussette
une chemise
une clarinette
une copine
une femme
une fille
une glace
une heure
une lampe
une maison
une montagne
une personne
une piscine
une pizza
une radio
une raquette
une salade
une souris
une sœur
une table
une télé
une voiture

6
আমি কেবল জিনিসগুলিকে শক্ত করতে তালিকায় আন স্কিটলেট যুক্ত করতাম
200_সাক্সেস

উত্তর:


23

সিজেএম, 0 টি ভুল, 32 29 বাইট

এই কোডটিতে কয়েকটি বিজোড় অক্ষর ব্যবহার করা হয়েছে (তাদের মধ্যে কিছুগুলি ছাপ ছাড়াই) তবে এগুলি সমস্ত প্রসারিত ASCII সীমার মধ্যে ভাল। তাই আবারও, আমি প্রতিটি চরিত্রকে একক বাইট হিসাবে গণনা করছি।

"un"'el2b"zPB:  ":i+:%2/*

ছাপছাড়া অক্ষরগুলির কারণে, আমি নিশ্চিত যে স্ট্যাক এক্সচেঞ্জ কিছু গ্রাস করেছে, তাই আপনি অক্ষর কাউন্টার থেকে কোডটি অনুলিপি করতে চাইতে পারেন (এটি ইউটিএফ -8 এনকোডিং সহ বাইট দেখায়, যা এই চ্যালেঞ্জের জন্য সাবওটিম্যাটাল; এছাড়াও, লিঙ্কটি না করে ' টি ফায়ারফক্সে কাজ করছে বলে মনে হচ্ছে না তবে এটি ক্রোমে রয়েছে)।

এটি এখানে পরীক্ষা করুন।

আড্ডায় আরও কিছু আলোচনার পরে, আমরা অনুভব করেছি যে রেজেক্স গল্ফ আমাদের আরও কিছু সামনে আনবে না। সুতরাং আমার একটি পূর্ববর্তী (রসিকতা) পরামর্শ অনুসরণ করে আমরা শব্দের চরিত্রের কোডগুলি নির্দিষ্ট ফাংশনগুলির সাথে হেরফের করতে শুরু করি, যেমন একটি গোষ্ঠীর সমস্ত শব্দের সাথে এমন কিছু সম্পত্তি পাওয়া যায় যা চেক করা সহজ। এবং আমরা আমাদের প্রত্যাশার চেয়ে ভাগ্যবান পেয়েছি! কোড শব্দগুলির সাথে কী করে তা এখানে:

  • বর্ণের অক্ষরগুলিকে স্পষ্টভাবে তাদের কোড পয়েন্টে রূপান্তর করুন convert
  • বেস 2 এগুলিকে অঙ্ক হিসাবে ব্যাখ্যা করুন (হ্যাঁ, সংখ্যাগুলি 0 বা 1 এর চেয়ে অনেক বড় হবে, তবে সিজেম এটি পরিচালনা করতে পারে)।
  • বারবার ফলাফলের মডিউল ... নিম্নলিখিত সংখ্যা নিতে: [133, 122, 80, 66, 58, 26, 20, 14, 9, 4]। সংখ্যার এই ক্রমটি নিজেই একটি স্ট্রিংয়ের কোড পয়েন্ট হিসাবে এনকোড থাকে (এটি যেখানে অদ্ভুত এবং ছাপিয়ে অক্ষর অক্ষরে আসে)।
  • যেন যাদু দ্বারা সমস্ত 25 টি পুংলিঙ্গ বিশেষ্য দেয় 0বা 1সমস্ত 25 টি স্ত্রীলিঙ্গ বিশেষ্য দেয় 2বা 3এই পদ্ধতিটি সহ। সুতরাং আমরা যদি 2(পূর্ণসংখ্যা বিভাগ) দ্বারা এটি ভাগ করি তবে আমরা পুংলিঙ্গ বিশেষ্যগুলির জন্য শূন্য এবং স্ত্রীলিঙ্গ বিশেষ্যগুলির জন্য পেয়েছি।

এটি বন্ধ করে দেওয়ার জন্য, আমরা "un"স্ট্যাকের উপর চাপ দিই, আমরা একককে ধাক্কা দিই e। তারপরে আমরা এসটিডিআইএন থেকে ইনপুট শব্দটি পড়ি এবং উপরের গণনাটি সম্পাদন করব এবং শেষ পর্যন্ত eফলাফল দ্বারা গুণিত করব ।

আমি এর আগে কখনও কোনও তালিকায় মডুলো ভাঁজ করি নি এবং আমার মনে হয় আমি আর কখনও করব না ...

এক্সনোর এবং এসপি 3000 এর জন্য অনেকগুলি ধারনা ছড়িয়ে দেওয়া এবং বিভাজক চেইনের অনুসন্ধানে সহায়তা করার জন্য অনেক ধন্যবাদ।


শুধুমাত্র খাটো নয়, 2 মিনিট দ্রুত। ভয়!
ডেনিস

@ সুডো;) ... বিরল সময়গুলির মধ্যে একটি যা আমি আপনাকে পরাজিত করতে সক্ষম হয়েছি ... যদিও আমি আপনার ব্যাখ্যাতে খুব আগ্রহী হব :)
মার্টিন এন্ডার

11
অপেক্ষা করুন, আমি বিভ্রান্ত যদি যাদুবিদ্যার অস্তিত্ব থাকে তবে আপনি কেন এটি নিরীহ প্রোগ্রামিং চ্যালেঞ্জ সাইটে নষ্ট করছেন এবং বিশ্ব শান্তি বা কিছু সমাধান করছেন না? (না, তবে মারাত্মকভাবে, ওহো । +1)
ডোরকনব

22

রুবি, 0 টি ভুল, 63 56 53 52 51 50 বাইট

সমস্ত অক্ষর বর্ধিত ASCII- এ রয়েছে , বিশেষত আইএসও 8859-1 , সুতরাং আমি প্রতিটি চরিত্রকে একক বাইট হিসাবে গণনা করছি।

f=->s{s[/la|tt|i.e|[égdzœu]..$|^b|^f|so|^ta/]?'une':'un'}

দেখে মনে হচ্ছে আপনার পরীক্ষার সেটটি কিছুটা সংক্ষিপ্ত ছিল। আমি পিটার নরভিগের মেটা রেজেক্স গল্ফারের সাথে রেজেক্স তৈরি করেছি ।

আপনি উপরের ফাংশনটির মতো কল করতে পারেন f["ami"]। সমস্ত পরীক্ষার কেসগুলি পরীক্ষা করতে আপনি এই পরীক্ষার জোতাটি ব্যবহার করতে পারেন:

puts "ami café chapeau concert crayon garage garçon lit livre mari musée 
      oncle ordinateur pantalon piano pique-nique portable père sandwich 
      saxophone stade stylo théâtre téléphone voisin botte boum chaise 
      chaussette chemise clarinette copine femme fille glace heure lampe 
      maison montagne personne piscine pizza radio raquette salade souris 
      sœur table télé voiture".split.map{|s|f[s]+" "+s}

কোডিং গ্রাউন্ডে এটি পরীক্ষা করুন।

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

সম্পাদনা করুন: এসপি 3000 এটিতে আমার সাম্প্রতিক রেজেক্স চ্যালেঞ্জের জন্য তিনি লিখেছেন রেইগেক্স গল্ফ সেট করেছিলেন এবং আমার ব্যবহারের জন্য একটি 36 35 34 বাইট রেজেক্স পেয়েছে । তার জন্য ধন্যবাদ!


2
এখানে মেটা রেজেক্স গল্ফের দুঃস্বপ্নগুলি পুনরুদ্ধার করা কারণ tableএটি একটি সাবস্ট্রিং portable, এবং কোন সেটটি মিলে যায় সেটি খুব কার্যকর নয় কারণ দ্বিতীয় সেটটি ম্যাচ করা সহজ বলে মনে হয় ...
Sp3000

13

সিজেএম, 0 টি ত্রুটি ( 36 32 29 28 বাইট)

{"un"oEb72^"+ÕåWïº"583b2b='e*o}:F;

এটি একটি নামযুক্ত ফাংশন, সুতরাং আমি কেবল অভ্যন্তরীণ কোডটি গণনা করছি। এছাড়াও, oএকটি মুদ্রণ বিবৃতি, তাই এটি বাইট গণনায় অবদান রাখে না।

সিজেএম ইন্টারপ্রেটারে পরীক্ষার কেসগুলি চেষ্টা করে দেখুন ।

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

"un"o       " Print 'un'.                                                  ";
Eb          " Consider the input a base 14 number.                        ";
72^         " XOR the result with 72.                                     ";
"+ÕåWïº"    " Push that string.                                           ";
583b2b      " Convert from base 583 to base 2.                            ";
=           " Retrieve the corresponding element (0 or 1) from the array. ";
'e*o        " Print 'e' that many times.                                  ";

কেবল একটি হ্যাশ ফাংশন এবং একটি টেবিল অনুসন্ধান।

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