পুনরাবৃত্তিভাবে সম্ভাবনাগুলি গণনা করুন।
দিন ps(x) সম্ভবত যে সম্ভাবনা হতে x মূল্যবোধ, 0≤x≤k, সব নির্বাচিত হয় s≥1 স্বাধীন ড্র k জনসংখ্যার আইটেম (প্রতিস্থাপন ছাড়াই) n≥k>0সদস্যরা। (ধরুনn এবং k বিশ্লেষণের সময়কালের জন্য নির্দিষ্ট করা হয়েছে যাতে তাদের স্পষ্টভাবে উল্লেখ করার দরকার নেই))
দিন ps(x∣y) সম্ভাবনা হত্তয়া যদি ঠিক হয় y মানগুলি প্রথমটিতে নির্বাচিত হয় s−1 আঁকুন, তারপর x≤yতাদের মধ্যে শেষ ড্রতে নির্বাচিত হয়েছে। তারপর কারণ আছে এর সাব-সেট নির্বাচন ঐ উপাদান উপাদান, এবং অবশিষ্ট সাব-সেট নির্বাচন উপাদান আলাদাভাবে আউট অন্যান্য নির্বাচন করা হয় জনসংখ্যার সদস্য,(yx)xy(n−yk−x)k−xn−y
ps(x∣y)=(yx)(n−yk−x)(nk).
মোট সম্ভাবনার আইনটি জোর দিয়েছিল
ps(x)=∑y=xkps(x∣y)ps−1(y).
জন্য এটি একটি নির্দিষ্টতা যে : এটিই শুরু বিতরণ।s=1x=k
মোট গণনার আপ মাধ্যমে পূর্ণ বন্টন প্রাপ্ত করা প্রয়োজন পুনরাবৃত্তির হয় । যুক্তিসঙ্গতভাবে কেবল দ্রুতই নয়, অ্যালগরিদমও সহজ। অযৌক্তিক প্রোগ্রামারটির জন্য অপেক্ষা করা একটি সমস্যা হ'ল এই সম্ভাবনাগুলি অত্যন্ত ছোট এবং পাতাল ভাসমান-পয়েন্ট গণনাতে পরিণত হতে পারে। নিম্নলিখিত প্রয়োগটি এর কলাম এর কলামগুলিতে এর মানগুলি গণনা করে এড়িয়ে চলে ।sO(k2s)R
log(ps(x))1,2,…,s
lp <- function(s, n, k) {
P <- matrix(NA, nrow=k+1, ncol=s, dimnames=list(0:k, 1:s))
P[, 1] <- c(rep(-Inf, k), 0)
for (u in 2:s)
for (i in 0:k) {
q <- P[i:k+1, u-1] + lchoose(i:k, i) + lchoose(n-(i:k), k-i) - lchoose(n, k)
q.0 <- max(q, na.rm=TRUE)
P[i+1, u] <- q.0 + log(sum(exp(q - q.0)))
}
return(P)
}
p <- function(...) zapsmall(exp(lp(...)))
প্রশ্নের উত্তর , এবং । s=5, n=10000=104k=100=102 আউটপুটটি অ্যারে হয় তবে বেশিরভাগ সংখ্যা এত ছোট হয় আমরা খুব কম ফোকাস করতে পারি । এখানে সাথে সম্পর্কিত প্রথম চারটি সারি রয়েছে :101×5xx=0,1,2,3
p(5, 1e4, 1e2)[1:4, ]
আউটপুট হয়
1 2 3 4 5
0 0 0.3641945 0.9900484 0.9999 0.999999
1 0 0.3715891 0.0099034 0.0001 0.000001
2 0 0.1857756 0.0000481 0.0000 0.000000
3 0 0.0606681 0.0000002 0.0000 0.000000
এর মান সারি লেবেল যখন মান কলাম লেবেল। 5 কলামে এই পাঁচটি নমুনায় একটি উপাদান উপস্থিত হওয়ার সম্ভাবনা দেখায় বিয়োগফল (প্রায় এক মিলিয়নতে এক) এবং পাঁচটি নমুনায় দুটি বা আরও বেশি উপাদান উপস্থিত হওয়ার কোনও সম্ভাবনা নেই।xs
আপনি যদি এই সম্ভাবনাগুলি কতটা ছোট দেখতে চান তবে তাদের লগারিদমটি দেখুন। বেস 10 টি সুবিধাজনক এবং আমাদের অনেকগুলি অঙ্কের দরকার নেই:
u <- lp(5, 1e4, 1e2)[, 5]
signif(-u[-1] / log(10), 3)
দশমিক বিন্দুর পরে আউটপুট আমাদের জানায় যে কতগুলি শূন্য রয়েছে:
1 2 3 4 5 6 7 8 9 10 ... 97 98 99 100
6.0 12.3 18.8 25.5 32.3 39.2 46.2 53.2 60.4 67.6 ... 917.0 933.0 949.0 967.0
শীর্ষ সারিতে নম্বরগুলি এর মান । উদাহরণস্বরূপ, পাঁচটি নমুনার মধ্যে দেখানো ঠিক তিন মূল্যবোধের সুযোগ কম্পিউটিং দ্বারা পাওয়া যায় , দান এবং প্রকৃতপক্ষে এই আছে আগে শূন্য প্রথম উল্লেখযোগ্য সংখ্যা। একটি চেক হিসাবে, গত মান একটি বৃত্তাকার সংস্করণ । (যা পরবর্তী চারটি নমুনায় প্রথম নমুনা পুনরায় প্রদর্শিত হওয়ার সম্ভাবনাগুলি গণনা করে) সমানxexp(u[4])
0.0000000000000000001434419…18967.0967.26(10000100)−410−967.26.