সীমাবদ্ধ রাষ্ট্রের মেশিনটি বর্ণনা করা সহজ যা 9 টির গুণকে স্বীকৃতি দেয়: অঙ্কের অঙ্কের (মোড 9) ট্র্যাক রাখুন এবং পরবর্তী যে কোনও অঙ্ক স্বীকৃত হবে তা যুক্ত করুন। এই জাতীয় এফএসএমের মাত্র 9 টি রাজ্য রয়েছে, খুব সাধারণ! এফএসএম-সনাক্তকরণযোগ্যতা এবং নিয়মিত ভাষার মধ্যে সমতা অনুসারে, 9 এর বহুগুণের জন্য নিয়মিত প্রকাশ হয় তবে যাইহোক, এই জাতীয় কোনও নিয়মিত প্রকাশ সম্ভবত ... খুব ... দীর্ঘ। যেমনটি, সম্ভবত একটি গিগাবাইটের আদেশে।
এর গুণকগুলির জন্য https://www.quaxio.com/triple/ এ একটি কাজের উদাহরণ রয়েছে the পৃষ্ঠার নীচে, লেখক কিছুটা "হ্যান্ড-অনুকূলিত" সমাধান প্রদান করেছেন যা এর থেকে নিখুঁত রূপান্তর থেকে কিছুটা খাটো রেগেক্স থেকে এফএসএম।
চ্যালেঞ্জ:
9 এর গুণকগুলি সনাক্ত করতে আপনাকে অবশ্যই একটি রেজেক্স তৈরি করতে হবে যেহেতু এই জাতীয় রেজেক্স খুব দীর্ঘ হবে বলে আশা করা হচ্ছে, তাই আমি আপনাকে অনুরোধ করি যে আপনি এমন একটি প্রোগ্রাম সরবরাহ করবেন যা আপনার রেজেক্স মুদ্রণ করতে পারে। (আপনি যদি সত্যিই একটি পুরো রেজেক্স দিতে চান তবে সম্ভবত এটি অন্য কোথাও হোস্ট করুন এবং এটি এখানে লিঙ্ক করুন!)
আপনার অবশ্যই আপনার প্রোগ্রামের আউটপুটটির সঠিক চরিত্রের গণনাটি আমাদের বলতে সক্ষম হবেন - সুতরাং এমন একটি প্রোগ্রাম থাকা যা একটি নির্দিষ্ট দৈর্ঘ্য পর্যন্ত সমস্ত রেজিটাকে কেবল চেষ্টা করে, যতক্ষণ না এটি কাজ করে এমন একটি আবিষ্কার করে, যতক্ষণ না এটি সম্ভব পর্যাপ্ত পরিমাণে চালিত হয় যদি না এটি সমাপ্তির জন্য চালান এবং আমাদের ফলস্বরূপ রেজেক্স দৈর্ঘ্য দিন!
পয়েন্টগুলি অবশ্যই সংক্ষিপ্ত আউটপুট রেজেক্স থাকার জন্য, অবশ্যই প্রোগ্রামের দৈর্ঘ্যের উপর ভিত্তি করে নয়। যেহেতু রেজেক্সটি "প্রোগ্রাম" আমি জিজ্ঞাসা করছি এবং এটি এখানে সুবিধামত প্রেরণ করতে খুব দীর্ঘ, তাই আমি এখনও এই কোড-গল্ফটিকে ট্যাগ করছি।
নিয়মাবলী:
- ইনপুটটিতে কেবল অক্ষরগুলির মিল রয়েছে
[0-9]*
। - আপনার রেজেক্স 9 টির গুণমানের সাথে মিলবে , তবে অন্য কিছু নয়। যে কেসগুলি সম্পূর্ণরূপে 0-9 অঙ্কগুলিতে তৈরি হয় না এবং অবৈধ ইনপুট হয় তা আপনার ইচ্ছামতো মেলে বা ব্যর্থ হতে পারে।
- এটি একটি ডিএফএ দ্বারা সহজেই স্বীকৃত প্রেরণার ফলে, ফলস্বরূপ রেজেক্স অবশ্যই আরও তাত্ত্বিক পরিভাষায় নিয়মিত প্রকাশ হতে হবে , কেবলমাত্র অপারেটরগুলির অধীনে নিয়মিত ভাষা বন্ধ রয়েছে are সুনির্দিষ্টভাবে বলতে গেলে, কেবলমাত্র অনুমোদিত জিনিসগুলি:
- লিটারেল, চরিত্র রেঞ্জ (
[ab]
,[a-f]
,[^k]
), Kleene তারকা (*
), নোঙ্গর (^
এবং$
), প্রথম বন্ধনী মাধ্যমে গোষ্ঠীবদ্ধ করার, আবর্তনে (|
), ঐচ্ছিক শর্তাবলী (?
), একটি-অর-আরো শর্তাবলী (+
), lookaheads ((?=)
), নেতিবাচক lookaheads ((?!)
), লুকবিহাইন্ডস ((?<=)
), নেতিবাচক লুকবিহিন্ডস ((?<!)
), শর্তসাপেক্ষ (যেমন https://www.regular-expressions.info/conditional.html -(?(?=test)then|else)
), এবং সীমানা দৈর্ঘ্যের ব্যাকগ্রিফেস (নীচে দেখুন)
- লিটারেল, চরিত্র রেঞ্জ (
- অনুমোদিত নয় এমন উদাহরণগুলির উদাহরণ :
- স্বেচ্ছাসেবী দৈর্ঘ্য, ফরোয়ার্ড রেফারেন্স, পুনরাবৃত্তি, সাবরুটাইনস, লুপিং কনস্ট্রাক্টস, এক্সিকিউটেবল কোড, 'ইওল' এর কোনও প্রকরণ, বা পাটিগণিত মানের ক্ষেত্রে স্ট্রিং forালাইয়ের জন্য অন্তর্নির্মিত কনস্ট্রাক্টসের ব্যাকরেফারেন্স।
- সীমাবদ্ধ দৈর্ঘ্যের বাঁধাইয়ের স্ট্রিং রয়েছে এমন দেখানো যেতে পারে এমন পশ্চাদগম্যগুলি গ্রহণযোগ্য, কারণ এগুলি সীমাবদ্ধ অবস্থায় সংরক্ষণ করা যেতে পারে এবং ভাষার নিয়মিততা পরিবর্তন করে না। উদাহরণস্বরূপ,
(..2.[3-5])4\1.\1
ক্যাপচারিং গ্রুপের সীমাবদ্ধ দৈর্ঘ্য হওয়ায় রেজেক্স গ্রহণযোগ্য\1
। এটি নিয়মিত নির্মাণ is যেমন একটি কনস্ট্রাক্ট(2*)0\1
গ্রহণযোগ্য নয়, যেমন বন্দী গোষ্ঠী সীমাবদ্ধ অবস্থায় সংরক্ষণ করা যায় না। - আপনার রেজেক্স আপনার ইচ্ছামত বহিরাগত নেতৃস্থানীয় শূন্যগুলির সাথে পূর্ণসংখ্যার গ্রহণ বা প্রত্যাখ্যান করতে পারে। তবে স্ট্রিংটি
"0"
অবশ্যই গ্রহণ করতে হবে।
^(0|9|(?<c>1|(?<c>2|(?<c>3|(?<c>4|(?<c>5|(?<c>6|(?<c>7|(?<c>8))))))))((?<-c>){9})?)*$(?(c).)