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?a
recursive কল হবে।
নতুন বেস কেস এই ঘটায় ?
আউটপুট দিতে ডবল যে ?
49-বাইট সংস্করণে, সঙ্গে যেহেতু 0?0=1
, আমরা হবে 0%0=0?0+0?0=2
। f n=n?n
আমাদের অন্যান্য করণীয়টি অর্ধেক ছাড়াই এটি সংজ্ঞায়িত করতে দেয় ।