f=lambda n,k=1:k/n or n*f(n,k+1)+k*f(n-1,k)
এটি অনলাইন চেষ্টা করুন!
একটি ভিন্ন পদ্ধতির
যখনই আমি এই চ্যালেঞ্জটি পোস্ট করেছি তখন থেকেই আমি এই সমস্যার পুনরাবৃত্ত সমাধান সমাধান করার চেষ্টা করেছি। আমি কলম এবং কাগজ ছাড়া আর কিছুই ব্যবহার করতে ব্যর্থ হয়েছি, তবে আমি সূত্রটি গল্ফে ব্যবহারিক সমস্যায় পরিণত করতে পেরেছি - কমপক্ষে ব্যবহারিকের নির্দিষ্ট সংখ্যার জন্য - যা বিশ্লেষণ করা সহজ করেছে।
নীচের হিসাবে কাজ করে এমন কে + এম পরীক্ষার্থীদের সাথে একটি গেম শো কল্পনা করুন ।
রাউন্ড 1 এ, সমস্ত প্রার্থীদের যত তাড়াতাড়ি সম্ভব একটি নির্দিষ্ট কাজ সম্পাদন করতে হবে। ট প্রার্থীদের যে কাজটি দ্রুততম সাধা win 1 ট $ (এক kilodollar) বৃত্তাকার 3 প্রতিটি এবং আগাম।
বৃত্তাকার 2 সালে মি অবশিষ্ট প্রার্থীদের অন্যান্য যোগদান করতে একটি দ্বিতীয় সুযোগ পেতে ট । প্রতিটি প্রার্থীকে একটি প্রশ্ন করা হয়। যদি তারা প্রশ্নের যথাযথ উত্তর দেয় তবে তারা 1 কে $ জিতে এবং 3 পর্বে এগিয়ে যায় তবে, যদি তারা প্রশ্নের উত্তর দিতে ব্যর্থ হয় তবে এগুলি খেলা থেকে সরিয়ে দেওয়া হয়। এর অর্থ কে-কে এবং কে + এম পরীক্ষার্থীদের মধ্যে রাউন্ড 3 থাকবে , কতজন তাদের প্রশ্নের উত্তর দিতে পারে তার উপর নির্ভর করে।
রাউন্ড 3 এম এর আরও বেশি প্রতিযোগিতা নিয়ে গঠিত যা রাউন্ড 1 এর অনুরূপ। প্রতিটি প্রতিযোগিতায় অংশগ্রহণকারীদের একটি নির্দিষ্ট কাজ সম্পাদন করতে হবে। রাউন্ড 1 এর বিপরীতে, কেবলমাত্র একজন প্রার্থী একটি পুরষ্কার পান তবে সমস্ত প্রার্থীরা পরের প্রতিযোগিতায় অংশ নিতে পান। প্রতিটি প্রতিযোগিতা তার আগে প্রতিযোগিতার দ্বিগুণ মূল্য প্রদান করে; প্রথম এক বহন করেনা 2 ট $ এবং গত এক 2 মি ট $ ।
নোট করুন যেহেতু সমস্ত পুরষ্কার দু'টিরই ক্ষমতা, একজন প্রার্থী কতটা পুরস্কারের অর্থ উপার্জন করেছেন তা জানার অর্থ আমরা জানি যে তারা 3 রাউন্ডে উঠেছে কিনা এবং তারা রাউন্ড 3 এর কোন প্রতিযোগিতা জিতেছে।
ধরে নিন আপনি গেম শোটি দেখছেন এবং রাউন্ড 1 ইতিমধ্যে শেষ হয়ে গেছে, তাই আপনি কী জানেন কে কোন প্রার্থী ইতিমধ্যে 3 রাউন্ডে পৌঁছেছেন এবং কোন এম প্রার্থীরা এখনও ২ রাউন্ডে আটকে আছে? বাকি পুরস্কারের অর্থটি কত উপায়ে বিতরণ করা যেতে পারে?
একবার আমরা যখন জানতে পারি যে দ্বিতীয় রাউন্ডের মি প্রার্থীদের মধ্যে 3 রাউন্ডে উন্নীত হয়েছে, তবে এই নির্দিষ্ট দৃশ্যের সম্ভাব্য ফলাফলগুলি গণনা করা সহজ। যদি জে প্রার্থীরা অগ্রিম হন, তবে রাউন্ড 3 এ কে + জ মোট প্রার্থী রয়েছে এবং প্রতিটি প্রতিযোগিতার জন্য কে + জ সম্ভাব্য ফলাফল রয়েছে। রাউন্ড 3 এ মি পৃথক প্রতিযোগিতা সহ , এটি সমস্ত মি প্রতিযোগিতার জন্য (কে + জ) মি ফলাফল তৈরি করে ।
এখন, জে 0 এবং মি এর মধ্যে যে কোনও মান নিতে পারে , তার উপর নির্ভর করে প্রার্থীরা রাউন্ড 2-তে সঠিক উত্তর দেয়, জে প্রতিটি ফিক্স মানের জন্য , এম সি জে জে প্রার্থীদের বিভিন্ন সংমিশ্রণ রয়েছে যা রাউন্ড 3 এ উন্নত হতে পারে If কে রাউন্ড 3 প্রার্থী এবং এম রাউন্ড 2 প্রার্থীদের ছ (এম, কে) এর মোট সম্ভাব্য ফলাফলের সংখ্যা , আমরা নিম্নলিখিত সূত্রটি পেয়েছি।
যদি আমরা কে = 1 ঠিক করি তবে আমরা নিম্নলিখিত বিশেষ কেসটি পাই যা মূল সমস্যাটি সমাধান করার জন্য আমাদের নতুন পদ্ধতির গঠন করে।
একটি পুনরাবৃত্তির সূত্র
এখন, অনুমান তোমার পরে বৃত্তাকার 1 বাণিজ্যিক সময় ঘুমিয়ে পড়েছিলাম, এবং শুধুমাত্র দেখতে সময় যারা বৃত্তাকার 3 গত প্রতিযোগিতার গ্র্যান্ড পুরস্কার জিতেছে এবং এইভাবে মধ্যে woke আপ 2 মি ট $ । আপনার কাছে অন্য কোনও তথ্য নেই, এমনকি প্রার্থী মোট কত পুরস্কারের টাকা জিতেছে তা নয়। অবশিষ্ট পুরষ্কারের পরিমাণটি কত উপায়ে বিতরণ করা যেতে পারে?
যদি বিজয়ী রাউন্ড 2 এর এম প্রার্থীদের মধ্যে একজন ছিল , আমরা ইতিমধ্যে এখনই তাদের অবশ্যই এগিয়ে যেতে হবে 3 রাউন্ডে । সুতরাং, আমরা কার্যকরভাবে রাউন্ড 3 এ কে + 1 প্রার্থী রেখেছি, তবে কেবল এম - 1 রাউন্ডে 1 প্রার্থী, যেহেতু আমরা শেষ প্রতিযোগিতার বিজয়ী জানি, সেখানে কেবলমাত্র মি - 1 প্রতিযোগিতা রয়েছে অনিশ্চিত ফলাফল সহ, তাই সেখানে জি (এম) আছে - 1, কে + 1) সম্ভাব্য ফলাফল।
যদি বিজয়ী কে-এর প্রার্থীদের মধ্যে থাকে যেগুলি রাউন্ড 2 এড়িয়ে যায়, গণনাটি কিছুটা জটিল হয়ে যায়। আগের মতই শুধুমাত্র আছে মি - 1 চক্রের বাকি, কিন্তু এখন আমরা এখনও আছে ট বৃত্তাকার 3 এবং প্রার্থীদের মি বৃত্তাকার 2. প্রার্থীদের বৃত্তাকার 2 প্রার্থীর সংখ্যা এবং বৃত্তাকার 3 প্রতিযোগিতায় সংখ্যা যেহেতু হয় ভিন্ন, সম্ভাব্য ফলাফল পারব না জি এর একটি সাধারণ প্রার্থনা দিয়ে গণনা করা । তবে, প্রথম রাউন্ডের 2 জন প্রার্থী উত্তর দিয়েছেন - সঠিক বা ভুল - রাউন্ড 2 প্রার্থীর সংখ্যা আবার মি - 1 রাউন্ড 3 প্রতিযোগিতার সাথে মেলে । যদি প্রার্থী অগ্রসর হয়, কে + 1 রাউন্ড 3 প্রার্থী রয়েছে এবং এইভাবে জি (এম - 1, কে + 1)সম্ভাব্য ফলাফল; যদি প্রার্থী দূর হয়ে যায়, গোল 3 প্রার্থীর নম্বরে রয়ে ট এবং আছে ছ (মি - 1, ট) সম্ভাব্য ফলাফল। যেহেতু প্রার্থী হয় অগ্রসর হয় বা না হয়, এই দুটি ক্ষেত্রে একত্রিত হয়ে জি (এম - 1, কে + 1) + জি (এম - 1, কে) সম্ভাব্য ফলাফল রয়েছে।
এখন, যদি আমরা সমস্ত কে + এম পরীক্ষার্থীদের জন্য সম্ভাব্য ফলাফলগুলি যোগ করি যা গ্র্যান্ড প্রাইজ অর্জন করতে পারে তবে ফলাফলটি অবশ্যই জি (এম, কে) এর সাথে মেলে । আছে মি বৃত্তাকার যে নেতৃত্ব 2 প্রতিযোগী ছ (মি - 1, K + 1 টি) সম্ভাব্য প্রতিটি ফলাফল, এবং k বৃত্তাকার 3 প্রতিযোগী যে নেতৃত্ব ছ (মি - 1, K + 1 টি) + + ছ (মি - 1, ট) বেশী। সংক্ষেপে, আমরা নিম্নলিখিত পরিচয় পাই।
একসাথে বেস কেস
এই দুটি সূত্র ফাংশন জি সম্পূর্ণরূপে বৈশিষ্ট্যযুক্ত ।
একটি গোলাপী বাস্তবায়ন
যদিও
g=lambda m,k=1:0**m or(m+k)*g(m-1,k+1)+k*g(m-1,k)
(49 বাইট, 0**m
উৎপাদ 1 একবার মি ড্রপ 0 ) অথবা এমনকি
g=lambda m,k=1:m<1 or(m+k)*g(m-1,k+1)+k*g(m-1,k)
(48 বাইট, 1 এর পরিবর্তে সত্য ফেরত দেয় ) এর বৈধ সমাধান হবে, এখনও বাইটস সংরক্ষণ করতে হবে।
আমরা একটি ফাংশন নির্ধারণ তাহলে চ যে সংখ্যা লাগে এন সংখ্যা পরিবর্তে বৃত্তাকার 1 প্রার্থীর মি প্রথম আর্গুমেন্ট, অর্থাত্ যেমন বৃত্তাকার 2 জন প্রার্থীর মধ্যে
আমরা পুনরাবৃত্তি সূত্র পেতে
বেস কেস সহ
অবশেষে, আমরা আছে
পাইথন বাস্তবায়ন
f=lambda n,k=1:k/n or n*f(n,k+1)+k*f(n-1,k)
( একবারে 1 বার এন = কেk/n
ফলন হয় ) 1-ভিত্তিক সূচী দিয়ে হাতের কাজটি সমাধান করে।