আরেকটি সমাধান
এটি আমার মতে সাইটের সবচেয়ে আকর্ষণীয় সমস্যা of আমার উপরে ডেডকোডটি শীর্ষে ফেলার জন্য ধন্যবাদ জানাতে হবে।
^((^|xx)(^|\3\4\4)(^|\4x{12})(^x|\1))*$
39 বাইট , কোনও শর্ত ছাড়াই বা দাবি ছাড়াই ... সাজানো। ^|
"প্রথম পুনরাবৃত্তি," এবং "প্রথম পুনরাবৃত্তি নয়" এর মধ্যে নির্বাচন করার জন্য বিকল্পগুলি যেমন ব্যবহার করা হচ্ছে ( ), এটি একরকম শর্তাধীন are
এই রেজেক্সটি এখানে কাজ করতে দেখা যেতে পারে: http://regex101.com/r/qA5pK3/1
পিসিআরই এবং পাইথন উভয়ই রেজেক্সকে সঠিকভাবে ব্যাখ্যা করে এবং এটি এন 4 -1 এবং এন 4 +1 সহ এন = 128 অবধি পার্লেও পরীক্ষা করা হয়েছে ।
সংজ্ঞা
সাধারণ কৌশলটি ইতিমধ্যে পোস্ট করা অন্যান্য সমাধানগুলির মতোই: স্ব-রেফারেন্সিং এক্সপ্রেশনটি সংজ্ঞায়িত করুন যা প্রতিটি পরবর্তী পুনরাবৃত্তিতে সীমাহীন কোয়ান্টিফায়ার ( ) এর সাথে ফরোয়ার্ড পার্থক্য ফাংশন, ডি চ এর পরবর্তী টার্মের সমান দৈর্ঘ্যের সাথে মেলে *
। ফরোয়ার্ড পার্থক্য ফাংশনের একটি আনুষ্ঠানিক সংজ্ঞা:
অতিরিক্তভাবে, উচ্চতর অর্ডার পার্থক্য ফাংশনগুলিও সংজ্ঞায়িত করা যেতে পারে:
বা আরও সাধারণভাবে:
ফরোয়ার্ড পার্থক্য ফাংশন অনেক আকর্ষণীয় বৈশিষ্ট্য আছে; এটি ক্রমাগত ক্রিয়াকলাপগুলিতে ডেরাইভেটিভ কী তা অনুক্রমগুলি। উদাহরণস্বরূপ, ডি চ একটি এর এন ম অর্ডার বহুপদী সবসময় একটি হতে হবে এন -1 ম অর্ডার বহুপদী, এবং যে কোনো জন্য আমি , যদি ডি চ আমি = ডি চ আমি +1 , তারপর ফাংশন চ একই ভাবে সূচকীয় হয় যে ব্যুৎপন্ন ই এক্স নিজেই সমান। যার জন্য সহজ বিযুক্ত ফাংশন চ = ডি চ হয় 2 এন ।
f (n) = n 2
উপরের সমাধানটি পরীক্ষা করার আগে, আসুন আমরা কিছুটা সহজ কিছু দিয়ে শুরু করি: একটি রেজেক্স যা স্ট্রিংগুলির সাথে মেলে যার দৈর্ঘ্য একটি নিখুঁত বর্গ। ফরোয়ার্ড পার্থক্য ফাংশন পরীক্ষা করা:
অর্থ, প্রথম পুনরাবৃত্তির দৈর্ঘ্যের 1 টি , দ্বিতীয় দৈর্ঘ্যের 3 স্ট্রিং , তৃতীয় দৈর্ঘ্যের 5 টি স্ট্রিং ইত্যাদির সাথে মিল থাকা উচিত এবং সাধারণভাবে, প্রতিটি পুনরাবৃত্তির আগেরটির চেয়ে দুটি দীর্ঘ দীর্ঘ স্ট্রিংয়ের সাথে মেলে। সংশ্লিষ্ট রেজেক্স এই বিবৃতি থেকে প্রায় সরাসরি অনুসরণ করে:
^(^x|\1xx)*$
এটি দেখা যায় যে প্রথম পুনরাবৃত্তি কেবল একটির সাথে মিলবে x
এবং প্রতিটি পরবর্তী পুনরাবৃত্তি পূর্বের চেয়ে দু'বার দীর্ঘ একটি স্ট্রিংয়ের সাথে মিলবে, ঠিক যেমনটি নির্দিষ্ট করা হয়েছে। এটি পার্লের মধ্যে একটি আশ্চর্যজনকভাবে সংক্ষিপ্ত নিখুঁত নিখুঁত স্কোয়ার পরীক্ষাটি বোঝায়:
(1x$_)=~/^(^1|11\1)*$/
এই রেজেক্সটিকে আরও সাধারণ করা যেতে পারে যে কোনও এন- আঞ্চলিক দৈর্ঘ্যের সাথে মেলে :
ত্রিভুজাকার সংখ্যা:
^(^x|\1x{1})*$
বর্গ সংখ্যা:
^(^x|\1x{2})*$
পেন্টাগোনাল সংখ্যা:
^(^x|\1x{3})*$
ষড়ভুজ সংখ্যা:
^(^x|\1x{4})*$
প্রভৃতি
f (n) = n 3
নেভিগেশন মুভিং এন 3 , আবার এগিয়ে পার্থক্য ফাংশন পরীক্ষা:
এটি কীভাবে বাস্তবায়ন করা যায় তা তাত্ক্ষণিকভাবে স্পষ্ট নাও হতে পারে, তাই আমরা দ্বিতীয় তফাত কার্যটিও পরীক্ষা করি:
সুতরাং, ফরোয়ার্ড পার্থক্য ফাংশন একটি ধ্রুবক দ্বারা বৃদ্ধি হয় না, বরং একটি লিনিয়ার মান দ্বারা। এটি দুর্দান্ত যে ডি এফ 2 এর প্রাথমিক (' -1 ম') মানটি শূন্য, যা দ্বিতীয় পুনরাবৃত্তির একটি সূচনা সংরক্ষণ করে। ফলস্বরূপ রেজেক্সটি নিম্নলিখিত:
^((^|\2x{6})(^x|\1))*$
প্রথম পুনরাবৃত্তিটি 1 টির সাথে মিলবে , আগের মতো, দ্বিতীয়টি স্ট্রিংটির সাথে 6 টি দীর্ঘ ( 7 ), তৃতীয়টি 12 টি দীর্ঘ ( 19 ) ইত্যাদির সাথে মিলবে etc.
f (n) = n 4
এগিয়ে পার্থক্য ফাংশন এন 4 :
দ্বিতীয় ফরোয়ার্ড পার্থক্য ফাংশন:
তৃতীয় ফরোয়ার্ড পার্থক্য ফাংশন:
এখন যে কুৎসিত। ডি এফ 2 এবং ডি এফ 3 এর প্রাথমিক মানগুলি যথাক্রমে শূন্য, 2 এবং 12 উভয়ই , যার জন্য জবাবদিহি করতে হবে। আপনি সম্ভবত এখনই আবিষ্কার করেছেন যে রেজেক্স এই ধরণটি অনুসরণ করবে:
^((^|\2\3{b})(^|\3x{a})(^x|\1))*$
কারণ ডি চ 3 একটি দৈর্ঘ্য মেলানো 12 দ্বিতীয় পুনরাবৃত্তির উপর, একটি অগত্যা হয় 12 । তবে এটি প্রতি শব্দে 24 দ্বারা বৃদ্ধি পায় , পরবর্তী গভীর নীড়গুলি অবশ্যই তার পূর্ববর্তী মানটি দুবার ব্যবহার করবে, বি = 2 বোঝায় । করতে চূড়ান্ত জিনিস আরম্ভ হয় ডি চ 2 । যেহেতু ডি এফ 2 সরাসরি ডি এফকে প্রভাবিত করে, যা আমরা শেষ পর্যন্ত মিলে যেতে চাই, এর ক্ষেত্রে উপযুক্ত অণু সরাসরি রেজেক্সে serুকিয়ে এর মানটি আরম্ভ করা যেতে পারে (^|xx)
। এরপরে চূড়ান্ত রেজেক্সটি হয়ে যায়:
^((^|xx)(^|\3\4{2})(^|\4x{12})(^x|\1))*$
উচ্চতর আদেশ
একটি পঞ্চম অর্ডার বহুবর্ষটি নিম্নলিখিত রেজেক্সের সাথে মেলানো যেতে পারে:
^((^|\2\3{c})(^|\3\4{b})(^|\4x{a})(^x|\1))*$
f (n) = n 5 একটি মোটামুটি সহজ অংশ, কারণ দ্বিতীয় এবং চতুর্থ উভয় পার্থক্যের পার্থক্যের জন্য প্রাথমিক মানগুলি শূন্য:
^((^|\2\3)(^|\3\4{4})(^|\4x{30})(^x|\1))*$
ছয়টি অর্ডার বহুবর্ষের জন্য:
^((^|\2\3{d})(^|\3\4{c})(^|\4\5{b})(^|\5x{a})(^x|\1))*$
সপ্তম অর্ডার বহুপদী জন্য:
^((^|\2\3{e})(^|\3\4{d})(^|\4\5{c})(^|\5\6{b})(^|\6x{a})(^x|\1))*$
প্রভৃতি
নোট করুন যে সমস্ত বহুত্ববিন্দু ঠিক এইভাবে মেলে না, যদি প্রয়োজনীয় কোনও সহগগুলি অ-পূর্ণসংখ্যা হয়। উদাহরণস্বরূপ, এন 6 এর জন্য a = 60 , b = 8 এবং c = 3/2 দরকার । উদাহরণস্বরূপ, এটি প্রায় কাজ করা যেতে পারে:
^((^|xx)(^|\3\6\7{2})(^|\4\5)(^|\5\6{2})(^|\6\7{6})(^|\7x{60})(^x|\1))*$
এখানে আমি b কে 6 এবং সি তে 2 এ পরিবর্তন করেছি , যার উপরে বর্ণিত মানগুলির সমান পণ্য রয়েছে। এটি গুরুত্বপূর্ণ যে পণ্যটি পরিবর্তিত হয় না, যেমন একটি · b · c ·… ধ্রুবক পার্থক্য ফাংশন নিয়ন্ত্রণ করে, যা ষষ্ঠ আদেশের বহুপদী জন্য ডি এফ 6 । এক আরম্ভ আছে: বর্তমান দুই আরম্ভের পরমাণু দ্বারা ডি চ করার 2 , সঙ্গে যেমন এন 4 , এবং পঞ্চম পার্থক্য ফাংশন আরম্ভ করার জন্য অন্য 360 একই সাথে থেকে হারিয়েছে দুই যোগ খ ।