0?0=1
a?b=sum[a?i+i?a|i<-[0..b-1]]
f n=n?n
এটি অনলাইন চেষ্টা করুন!
মোটামুটি প্রত্যক্ষ বাস্তবায়ন যা 2 টির বেশি ভেরিয়েবলের পুনরাবৃত্তি করে।
আমরা কীভাবে এই সমাধানটি পেতে পারি তা এখানে। সরাসরি পুনরাবৃত্ত সূত্র প্রয়োগকারী কোড দিয়ে শুরু করুন:
54 বাইট
0%0=1
a%b=sum$map(a%)[0..b-1]++map(b%)[0..a-1]
f n=n%n
এটি অনলাইন চেষ্টা করুন!
ব্যবহার flawr এর দাড়কাক পদক্ষেপ ব্যাখ্যা , a%bপাথ থেকে দাড়কাক পেতে সংখ্যা (a,b)থেকে (0,0), ব্যবহার করে শুধুমাত্র হ্রাস একটি তুল্য চলে আসে। প্রথম পদক্ষেপটি হ্রাস aবা হ্রাস হ্রাস করে b, অন্যটিকে একই রাখে, তাই পুনরাবৃত্তির সূত্র।
49 বাইট
a?b=sum$map(a%)[0..b-1]
0%0=1
a%b=a?b+b?a
f n=n%n
এটি অনলাইন চেষ্টা করুন!
map(a%)[0..b-1]++map(b%)[0..a-1]দু'টি অর্ধেক একই aএবং bঅদলবদল হয়ে গেছে তা উল্লেখ করে আমরা পুনরাবৃত্তি এড়াতে পারি । সহায়ক কলটি a?bপ্রথম চলনটি যেখানে কমে যায় সেই রাস্তাগুলি গণনা করে aএবং তাই b?aযেখানে প্রথম পদক্ষেপটি হ্রাস পায় তাদের সংখ্যা গণনা করে b। এগুলি সাধারণভাবে পৃথক এবং এগুলি যুক্ত হয় a%b।
সংশ্লেষটি a?bতালিকা অনুধাবন হিসাবেও লেখা যেতে পারে a?b=sum[a%i|i<-[0..b-1]]।
42 বাইট
0?0=1
a?b=sum[a?i+i?a|i<-[0..b-1]]
f n=n?n
এটি অনলাইন চেষ্টা করুন!
পরিশেষে, আমরা পরিত্রাণ পেতে %এবং মাত্র পরিপ্রেক্ষিতে পুনরাবৃত্তির লিখতে ?প্রতিস্থাপন a%iসঙ্গে a?i+i?arecursive কল হবে।
নতুন বেস কেস এই ঘটায় ?আউটপুট দিতে ডবল যে ?49-বাইট সংস্করণে, সঙ্গে যেহেতু 0?0=1, আমরা হবে 0%0=0?0+0?0=2। f n=n?nআমাদের অন্যান্য করণীয়টি অর্ধেক ছাড়াই এটি সংজ্ঞায়িত করতে দেয় ।