পরিসংখ্যানগুলিতে, কখনও কখনও এটি জানার জন্য দুটি ডেটা নমুনা একই অন্তর্নিহিত বিতরণ থেকে আসে কিনা তা দরকারী। এটি করার একটি উপায় হ'ল দ্বি-নমুনা কলমোগোরভ-স্মারনভ পরীক্ষাটি ব্যবহার করা ।
আপনার কাজটি এমন একটি প্রোগ্রাম লিখতে হবে যা দুটি অরসোর্টড নননেজিটিভ পূর্ণসংখ্য অ্যারে পড়ে এবং পরীক্ষায় ব্যবহৃত মূল পরিসংখ্যান গণনা করে।
একটি অ্যারে Aএবং একটি আসল নম্বর দেওয়া x, Fদ্বারা বিতরণ কার্যটি সংজ্ঞায়িত করুন
F(A,x) = (#number of elements in A less than or equal to x)/(#number of elements in A)
দুটি অ্যারে দেওয়া হয়েছে A1এবং A2সংজ্ঞা দিন
D(x) = |F(A1, x) - F(A2, x)|
দুই নমুনা Kolmogorov-Smirnov পরিসংখ্যাত সর্বোচ্চ মান Dসর্বাঙ্গে বাস্তব x।
উদাহরণ
A1 = [1, 2, 1, 4, 3, 6]
A2 = [3, 4, 5, 4]
তারপর:
D(1) = |2/6 - 0| = 1/3
D(2) = |3/6 - 0| = 1/2
D(3) = |4/6 - 1/4| = 5/12
D(4) = |5/6 - 3/4| = 1/12
D(5) = |5/6 - 4/4| = 1/6
D(6) = |6/6 - 4/4| = 0
দুটি অ্যারের জন্য কেএস-পরিসংখ্যান 1/2, সর্বাধিক মান D।
পরীক্ষার মামলা
[0] [0] -> 0.0
[0] [1] -> 1.0
[1, 2, 3, 4, 5] [2, 3, 4, 5, 6] -> 0.2
[3, 3, 3, 3, 3] [5, 4, 3, 2, 1] -> 0.4
[1, 2, 1, 4, 3, 6] [3, 4, 5, 4] -> 0.5
[8, 9, 9, 5, 5, 0, 3] [4, 9, 0, 5, 5, 0, 4, 6, 9, 10, 4, 0, 9] -> 0.175824
[2, 10, 10, 10, 1, 6, 7, 2, 10, 4, 7] [7, 7, 9, 9, 6, 6, 5, 2, 7, 2, 8] -> 0.363636
বিধি
- আপনি কোনও ফাংশন বা একটি সম্পূর্ণ প্রোগ্রাম লিখতে পারেন। ইনপুটটি STDIN বা ফাংশন আর্গুমেন্টের মাধ্যমে হতে পারে এবং আউটপুট STDOUT বা রিটার্ন মানের মাধ্যমে হতে পারে।
- আপনি ইনপুটটির জন্য যেকোন দ্ব্যর্থহীন তালিকা বা স্ট্রিং ফর্ম্যাট ধরে নিতে পারেন, যতক্ষণ না এটি উভয় অ্যারেতেই সামঞ্জস্য থাকে
- আপনার ভাষার এই জন্য একটি অন্তর্নির্মিত সুযোগ আছে, আপনি এটি ব্যবহার নাও করতে পারেন।
- কমপক্ষে 3 টি গুরুত্বপূর্ণ ব্যক্তির উত্তরগুলি সঠিক হওয়া দরকার
- এটি কোড-গল্ফ , তাই প্রোগ্রামটি খুব কম বাইটে জয়ী হয়
Aনীচে রয়েছে length(A)?)