পরিসংখ্যানগুলিতে, কখনও কখনও এটি জানার জন্য দুটি ডেটা নমুনা একই অন্তর্নিহিত বিতরণ থেকে আসে কিনা তা দরকারী। এটি করার একটি উপায় হ'ল দ্বি-নমুনা কলমোগোরভ-স্মারনভ পরীক্ষাটি ব্যবহার করা ।
আপনার কাজটি এমন একটি প্রোগ্রাম লিখতে হবে যা দুটি অরসোর্টড নননেজিটিভ পূর্ণসংখ্য অ্যারে পড়ে এবং পরীক্ষায় ব্যবহৃত মূল পরিসংখ্যান গণনা করে।
একটি অ্যারে 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)
?)