জন্মদিনের প্যারাডক্সটি 2 টিরও বেশি লোকের কাছে বাড়ানো হচ্ছে


29

Birthতিহ্যবাহী জন্মদিনের প্যারাডক্সে প্রশ্নটি হ'ল " গ্রুপের দুই বা তার বেশি লোক nএকটি জন্মদিন ভাগ করে নেওয়ার সম্ভাবনাগুলি কী "? আমি একটি সমস্যার উপর আটকে আছি যা এটি এর একটি এক্সটেনশন।

দু'জন জন্মদিন ভাগ করে নেওয়ার সম্ভাবনাটি জানার পরিবর্তে, x বা আরও বেশি লোক জন্মদিনে ভাগ করে নেওয়ার সম্ভাবনা কী তা জানতে আমার প্রশ্নটি প্রসারিত করা উচিত । সঙ্গে x=2 আপনি সম্ভাব্যতা গণক কোনো দুই জনের জন্মদিন ভাগ এবং বিয়োগ থেকে এটা করতে পারেন 1 , কিন্তু আমি মনে হয় আমি বড় নম্বরে এই যুক্তি প্রসারিত করতে পারেন না x

এটি আরও জটিল করার জন্য আমার একটি সমাধানও দরকার যা n (মিলিয়ন) এবং x (হাজার) এর জন্য খুব বড় সংখ্যক জন্য কাজ করবে ।


1
আমি অনুমান করি যে এটি বায়োইনফরম্যাটিক্স সমস্যা
csgillespie

3
এটি আসলে একটি বায়োইনফরম্যাটিকস সমস্যা, তবে যেহেতু এটি জন্মদিনের প্যারাডক্স হিসাবে একই ধারণাটিতে ফোটে আমি ভেবেছিলাম যে অপ্রাসঙ্গিক স্পেসিফিকেশনগুলি সংরক্ষণ করব!
সাইমন অ্যান্ড্রুজ

4
সাধারণত আমি আপনার সাথে একমত হব, তবে এই ক্ষেত্রে সুনির্দিষ্ট বিষয়গুলির কারণ হতে পারে যেহেতু ইতিমধ্যে একটি বায়োকন্ডাক্টর প্যাকেজ থাকতে পারে যা আপনি যা চান তা করে।
csgillespie

আপনি যদি সত্যিই জানতে চান, এটি এমন একটি প্যাটার্ন সন্ধানের সমস্যা যেখানে আমি বৃহত্তর সিকোয়েন্সগুলির একটি সেটের মধ্যে একটি উপসর্গের সমৃদ্ধকরণের প্রদত্ত স্তরের সম্ভাবনাটি সঠিকভাবে অনুমান করার চেষ্টা করছি। সুতরাং আমার সাথে সম্পর্কিত গণনাগুলির সাথে উপসাগরগুলির একটি সেট রয়েছে এবং আমি জানি যে আমি কতগুলি উপসাগর পর্যবেক্ষণ করেছি এবং কতটি তাত্ত্বিকভাবে পর্যবেক্ষণযোগ্য অনুক্রম উপলব্ধ। যদি আমি 10,000 টি পর্যবেক্ষণের মধ্যে 10 বার একটি নির্দিষ্ট ক্রম দেখি তবে আমার এটি জানতে হবে যে এটি সম্ভবত কতটা সম্ভব হয়েছিল।
সাইমন অ্যান্ড্রুজ

প্রায় আট বছর পরে, আমি এই সমস্যাটির একটি উত্তর stats.stackexchange.com/questions/333471 এ পোস্ট করেছি । সেখানে কোডটি বড় জন্য কাজ করে না , যদিও এটি এন এর মধ্যে চতুর্ভুজ সময় নেয় । n,n
হোয়বার

উত্তর:


17

এই কাউন্টিং সমস্যা হল: আছে সম্ভাব্য বরাদ্দকরণ করার জন্মদিন এন মানুষ। ঐ যাক কুই ( ; এন , বি ) , যার জন্য কোন জন্মদিন চেয়ে বেশি দ্বারা ভাগ করা বরাদ্দকরণ এর সংখ্যা হতে মানুষ কিন্তু অন্তত এক জন্মদিন আসলে দ্বারা ভাগ করা মানুষ। সম্ভাব্যতা আমরা চাইতে summing পাওয়া যাবে কুই ( ; এন , বি ) যথাযথ মানের জন্য দ্বারা ফলাফলের গুন - এনbnbnকুই(;এন,)কুই(;এন,)bn

এই গণনাগুলি হ'ল মানগুলির জন্য কয়েক শতাধিকের চেয়ে কম খুঁজে পাওয়া যায় । তবে, তারা কোনও সরল সূত্র অনুসরণ করবে না: আমাদের জন্মদিনগুলি কীভাবে নির্দিষ্ট করা যেতে পারে সেগুলির নিদর্শনগুলি বিবেচনা করতে হবে । আমি একটি সাধারণ বিক্ষোভ প্রদানের পরিবর্তে এটি চিত্রিত করব। আসুন এন = 4 (এটি সবচেয়ে ছোট আকর্ষণীয় পরিস্থিতি)। সম্ভাবনাগুলি হ'ল:nn=4

  • প্রতিটি ব্যক্তির একটি অনন্য জন্মদিন থাকে; কোডটি {4}}
  • ঠিক দুজন লোক জন্মদিনে ভাগ করে নেয়; কোডটি {2,1}}
  • দু'জনের একটি জন্মদিন এবং অন্য দু'জনের জন্ম অন্যরকম; কোডটি {0,2}}
  • তিন জন একটি জন্মদিন ভাগ; কোডটি {1,0,1}}
  • চার জন একটি জন্মদিন ভাগ; কোডটি {0,0,0,1}}

সাধারণত, কোড গন্য যার একটি tuple হয় k উপাদান শর্তাধীন কত স্বতন্ত্র birthdates ঠিক দ্বারা ভাগ করা হয় k মানুষ। এইভাবে, বিশেষত,{a[1],a[2],}kthk

1a[1]+2a[2]+...+ka[k]+=n.

নোট, দুই উপায়ে জন্মদিন প্রতি দুই জনের সর্বোচ্চ সাধিত হয় এমনকি এই সহজ ক্ষেত্রে, যে: কোড সহ এক এবং কোড সঙ্গে অন্য { 2 , 1 }{0,2}{2,1}

আমরা কোনও প্রদত্ত কোডের সাথে সম্পর্কিত জন্মদিনের কার্যভারের সংখ্যাটি সরাসরি গণনা করতে পারি। এই সংখ্যাটি তিনটি শর্তের গুণফল। একটি হ'ল বহু-গুণগত সহগ; এটা পার্টিশন পথ সংখ্যা, মোট ছাত্র মানুষ মধ্যে একটি [ 1 ] দলের 1 , একটি [ 2 ] দলের 2 , ইত্যাদি। যেহেতু গোষ্ঠীগুলির ক্রমটি গুরুত্বপূর্ণ নয়, আমাদের এই বহুজাতিক গুণাগুণকে একটি [ 1 ] দ্বারা ভাগ করতে হবে ! [ 2 ] ! এনএকটি[1]1a[2]2a[1]!a[2]!; এটির পরস্পর দ্বিতীয় শব্দ। পরিশেষে, গ্রুপগুলি সারিবদ্ধ করুন এবং তাদের প্রত্যেককে একটি জন্মদিনের জন্য বরাদ্দ করুন: সেখানে প্রথম গ্রুপের জন্য প্রার্থীরা, দ্বিতীয়টির জন্য - 1 এবং আরও অনেক কিছু রয়েছে। এই মানগুলি তৃতীয় শব্দটি গঠন করে একসাথে গুণতে হবে। এটি "ফ্যাক্টরিয়াল প্রোডাক্ট" বি ( a [ 1 ] + a [ 2 ] + ) এর সমান যেখানে ( এম ) অর্থ ( - 1 ) ( বি - এম + 1)bb1(একটি[1]+ +একটি[2]+ +)(মি)(-1)(-মি+ +1)

সেখানে একটি সুস্পষ্ট এবং মোটামুটি সহজ একটি প্যাটার্ন গণনা সংক্রান্ত পুনরাবৃত্তির হয় প্যাটার্ন জন্য গণনা করা { একটি [ 1 ] , ... , একটি [ - 1 ] } । এটি এন এর পরিমিত মানের জন্য গণনাগুলির দ্রুত গণনা সক্ষম করে । বিশেষত, একটি [ কে ] ঠিক কে দ্বারা ভাগ করে নেওয়া একটি [ কে ] জন্ম তারিখ উপস্থাপন করে{একটি[1],...,একটি[]}{একটি[1],...,একটি[-1]}এনa[k]a[k]kপ্রতিটি মানুষ। এই পর দলের মানুষ থেকে টানা হয়েছে এন মানুষ, যা করা যেতে পারে এক্স স্বতন্ত্র উপায়ে (বলুন), এটা প্যাটার্ন অর্জনের পথ সংখ্যা গণনা অবশেষ { একটি [ 1 ] , ... , একটি [ কে - 1 ] remaining বাকী লোকদের মধ্যে। এটিকে x দ্বারা গুণিত করা পুনরাবৃত্তি দেয়।a[k]knx{a[1],,a[k1]}x

আমি সন্দেহ করি যে একটি বদ্ধ ফর্মুলা রয়েছে , যা n এর সমস্ত পার্টিশনগুলির জন্য সংখ্যার সমষ্টি করে প্রাপ্ত হয় যার সর্বাধিক মেয়াদ k এর সমান । আমাকে কয়েকটি উদাহরণ দেওয়া যাক:q(k;n,b)nk

সঙ্গে (পাঁচটি সম্ভব জন্মদিন) এবং এন = 4 (চার জনের), আমরা প্রাপ্তb=5n=4

q(1)=q(1;4,5)=120q(2)=360+60=420q(3)=80কুই(4)=5।

উদাহরণস্বরূপ, যেখানে চারজনের মধ্যে তিন বা ততোধিক ব্যক্তি একই "জন্মদিন" ( সম্ভাব্য তারিখের মধ্যে) ভাগ করে নেওয়ার সুযোগ ( 80 + 5 ) / 625 = 0.136 এর সমান5(80+ +5)/625=0,136

অন্য উদাহরণ হিসাবে, এবং n = 23 নিন । ক্ষুদ্রতম কে (ছয় সিগ ডুমুর থেকে কেবল) এর জন্য q ( কে ; ২৩ , ৩5৫ ) এর মান এখানে রয়েছে :=365এন=23কুই(;23,365)

k=1:0.49270k=2:0.494592k=3:0.0125308k=4:0.000172844k=5:1.80449E6k=6:1.48722E8k=7:9.92255E11k=8:5.45195E13.

এই কৌশলটি ব্যবহার করে, আমরা সহজেই গণনা করতে পারি যে ৮ 87 জন মানুষের মধ্যে তিনবারের জন্মদিনের সংঘর্ষের (কমপক্ষে) প্রায় ৫০% সম্ভাবনা রয়েছে, ১৮ four among সালের মধ্যে একটি চার দিকের সংঘর্ষের ৫০% সম্ভাবনা রয়েছে এবং ৫০% সম্ভাবনা রয়েছে 310 জনের মধ্যে একটি পাঁচমুখী সংঘর্ষ। এই শেষ গণনাটি কয়েক সেকেন্ড নেওয়া শুরু করে (ম্যাথামেটিকায়, যাইহোক) কারণ বিবেচনা করার জন্য পার্টিশনের সংখ্যা বড় হতে শুরু করে। যথেষ্ট বড় আমাদের একটি আনুমানিক প্রয়োজন।n

একটি প্রত্যাশা প্রত্যাশা দিয়ে পোইসন বিতরণের মাধ্যমে প্রাপ্ত হয় , কারণ আমরা জন্মদিনের অ্যাসাইনমেন্টটি দেখতে পারি প্রায় বি থেকে উদ্ভূত হিসাবে (তবে বেশ নয়) স্বতন্ত্র পোইসন ভেরিয়েবল প্রতিটি প্রত্যাশার সাথে এন / বি : কোনও সম্ভাব্য জন্মদিনের জন্য ভেরিয়েবল কত জন এন-এর জন্মদিন রয়েছে তা বর্ণনা করে। সর্বাধিক বিতরণ সুতরাং প্রায় F ( কে ) বি যেখানে এফ হয় পোইসন সিডিএফ। এটি কোনও কঠোর যুক্তি নয়, তাই আসুন আমরা একটু পরীক্ষা করি। N = 23 , খ এর জন্য অনুমানের পরিমাণn/bbn/bnF(k)bFn=23 দেয়b=365

k=1:0.498783k=2:0.496803k=3:0.014187k=4:0.000225115.

পূর্ববর্তীটির সাথে তুলনা করে আপনি দেখতে পাচ্ছেন যে আপেক্ষিক সম্ভাবনাগুলি যখন ছোট হয় তবে দরিদ্র হতে পারে তবে পরম সম্ভাবনাগুলি প্রায় 0.5% এর সাথে যুক্তিসঙ্গতভাবে সুসংগত হয়। এবং বি বিস্তৃত পরিসীমা দিয়ে পরীক্ষা করা প্রায়শই এই ভাল সম্পর্কে পরামর্শ দেয়।nb

মোড়ানোর জন্য, আসল প্রশ্নটি বিবেচনা করুন: (পর্যবেক্ষণের সংখ্যা) এবং = 1 নিনn=10,000 (সম্ভাব্য "কাঠামোগুলির সংখ্যা," প্রায়)। সর্বাধিক সংখ্যক "ভাগ করা জন্মদিন" এর আনুমানিক বিতরণb=1000000

k=1:0k=2:0.8475+k=3:0.1520+k=4:0.0004+k>4:<1E6.

(এটি একটি দ্রুত গণনা)) স্পষ্টতই, 10,000 এর মধ্যে একটি কাঠামো 10 বার পর্যবেক্ষণ করা অত্যন্ত তাৎপর্যপূর্ণ হবে। যেহেতু এবং বি উভয়ই বড়, আমি প্রত্যাশাটি এখানে বেশ ভালভাবে কাজ করবে বলে আশা করি।nb

ঘটনাচক্রে, শেনকে অবহিত হিসাবে, অনুকরণগুলি দরকারী চেক সরবরাহ করতে পারে। একটি গণিত সিমুলেশন যেমন একটি ফাংশন দিয়ে তৈরি করা হয়

simulate[n_, b_] := Max[Last[Transpose[Tally[RandomInteger[{0, b - 1}, n]]]]];

যা আবার পুনরাবৃত্তি এবং সংক্ষিপ্তসারিত হয়, উদাহরণস্বরূপ যা 10,000 টি পুনরাবৃত্তি চালায় , বি = 1n=10000 কেস:b=1000000

Tally[Table[simulate[10000, 1000000], {n, 1, 10000}]] // TableForm

এর আউটপুট হয়

2 8503

3 1493

4 4

এই ফ্রিকোয়েন্সিগুলি পয়সন অনুমানের দ্বারা পূর্বাভাসযুক্তগুলির সাথে ঘনিষ্ঠভাবে একমত।


কি চমত্কার উত্তর, খুব ভাল @ শুভ ধন্যবাদ।
জে নাইট

"এখানে একটি সুস্পষ্ট এবং মোটামুটি সহজ পুনরাবৃত্তি" - যথা?
কোডিওলজিস্ট

1
@ কোডিওলজিস্ট আমি এই ধারণার একটি সংক্ষিপ্ত বিবরণ প্রবেশ করিয়েছি।
হোবার

+1 তবে আসল প্রশ্নে আপনি কোথায় দেখতে পেলেন যে n = 10000 এবং b = 1MLn? ওপি দেখে মনে হচ্ছে এটি এন = 1MLn এবং কে = 10000 সম্পর্কে জিজ্ঞাসা করছে, বি বিহীন দিয়ে (সম্ভবত বি = 365)। এই মুহুর্তে এটি গুরুত্বপূর্ণ নয় :)
অ্যামিবা বলেছেন

1
@ অ্যামিবা এই সমস্ত সময় পরে (ছয় বছর, 1600 উত্তর, এবং কয়েক হাজার পোস্ট ঘনিষ্ঠভাবে পড়া) আমি মনে করতে পারি না তবে সম্ভবত আমি শেষ পংক্তির ভুল ব্যাখ্যা দিয়েছি। আমার প্রতিরক্ষা হিসাবে, মনে রাখবেন যে আমরা যদি এটি অক্ষরে অক্ষরে পড়ি তবে উত্তরটি তাত্ক্ষণিকভাবে (পায়রাহোল নীতিটির কোনও সংস্করণ প্রয়োগ করার পরে): এটি নিশ্চিত যে = মিলিয়ন লোকের মধ্যে কমপক্ষে একটি জন্মদিন হবে যা কমপক্ষে এক্স এর মধ্যে ভাগ করা হবে = হাজার হাজার! nx
whuber

2

মন্টে-কার্লো সমাধান দিয়ে এই সমস্যাটি সমাধান করা সর্বদা সম্ভব, যদিও এটি সবচেয়ে দক্ষ থেকে দূরে। এখানে আর-তে 2 ব্যক্তির সমস্যার একটি সাধারণ উদাহরণ রয়েছে ( আমি গত বছর যে উপস্থাপনা দিয়েছিলাম ; এটি আমি অদক্ষ কোডের উদাহরণ হিসাবে ব্যবহার করেছি), যা সহজেই 2 টিরও বেশি অ্যাকাউন্টে সামঞ্জস্য হতে পারে:

birthday.paradox <- function(n.people, n.trials) {
    matches <- 0
    for (trial in 1:n.trials) {
        birthdays <- cbind(as.matrix(1:365), rep(0, 365))
        for (person in 1:n.people) {
            day <- sample(1:365, 1, replace = TRUE)
            if (birthdays[birthdays[, 1] == day, 2] == 1) {
                matches <- matches + 1
                break
            }
            birthdays[birthdays[, 1] == day, 2] <- 1
        }
        birthdays <- NULL
    }
    print(paste("Probability of birthday matches = ", matches/n.trials))
}

একাধিক ধরণের সমাধান এখানে কাজ করবে কিনা তা আমি নিশ্চিত নই।

আমি মনে করি যে সাধারণীকরণ এখনও 2 বা ততোধিক লোকের জন্য জন্মদিন ভাগ করে নেওয়ার জন্য কাজ করে - কেবলমাত্র আপনার বিভিন্ন উপ-শ্রেণীর লোক থাকতে পারে।
সাইমন অ্যান্ড্রুজ

1

এটি একটি সাধারণ সমাধানের চেষ্টা। কিছু ভুল থাকতে পারে তাই সাবধানতার সাথে ব্যবহার করুন!

প্রথমে কিছু স্বরলিপি:

এর সম্ভাবনা হ'ল x বা আরও বেশি লোক n এর মধ্যে জন্মদিন ভাগ করে নেয়,P(x,n)xn

সম্ভাব্যতা হতে যেঠিক Y মানুষের মধ্যে একটি জন্মদিনের ভাগ এন মানুষ।P(y|n) yn

নোট:

  1. হিসাবে স্বরলিপিটির অপব্যবহার দুটি ভিন্ন উপায়ে ব্যবহৃত হচ্ছে।P(.)

  2. সংজ্ঞা অনুসারে 1 এর মান নিতে পারে না কারণ এটি কোনও অর্থবোধ করে না এবং y = 0 এর অর্থ ব্যাখ্যা করা যেতে পারে যে কেউ একটি সাধারণ জন্মদিন ভাগ করে না।yy

তারপরে প্রয়োজনীয় সম্ভাবনাটি দ্বারা দেওয়া হয়:

P(x,n)=1P(0|n)P(2|n)P(3|n)....P(x1|n)

এখন,

P(y|n)=(ny)(365365)y k=1k=ny(1k365)

এখানে যুক্তি নেই: আপনি সম্ভাব্যতা প্রয়োজন যে ঠিক মানুষ একটি জন্মদিনের শেয়ার করুন।y

পদক্ষেপ 1: আপনি লোককে বেছে নিতে পারেন ( এন)y উপায়গুলি।(ny)

পদক্ষেপ 2: যেহেতু তারা একটি জন্মদিন ভাগ করে নেয় এটি বছরে 365 দিনের মধ্যে যে কোনও একটি হতে পারে। সুতরাং, আমাদের মুলত 365 টি পছন্দ রয়েছে যা আমাদের দেয় (365365)y

পদক্ষেপ 3: বাকি লোকদের প্রথম y লোকের সাথে বা একে অপরের সাথে জন্মদিন ভাগ করা উচিত নয় । এই যুক্তি আমাদের কে = এন দেয় -nyyk=1k=ny(1k365)

আপনি পরীক্ষা করতে পারেন যে = 2 এর জন্য মানক জন্মদিনের প্যারাডক্স সলিউশনে উপরের পতন ঘটে।x


এই সমাধানটি মাত্রিকতার অভিশাপে ভুগবে? যদি এন = 365 এর পরিবর্তে, n = 10 ^ 6 এর সমাধানটি এখনও সম্ভব?
csgillespie

উচ্চ মাত্রা নিয়ে কাজ করতে কিছু অনুমান ব্যবহার করতে হতে পারে। সম্ভবত, বাইনোমিয়াল সহগের ফ্যাকটোরিয়ালগুলির জন্য স্টার্লিংয়ের সান্নিধ্য ব্যবহার করুন। পণ্যের শর্তাদি সামলানোর জন্য আপনি পণ্যের পরিবর্তে লগ নিতে এবং অঙ্কগুলি গণনা করতে পারেন এবং তারপরে যোগফলের অ্যান্টি-লগ নিতে পারেন।

ঘনিষ্ঠ ফাংশনটির জন্য টেলর সিরিজ সম্প্রসারণের সাহায্যে আরও প্রায় বিভিন্ন ধরণের অনুমানগুলিও সম্ভব। এই অনুমানগুলির জন্য উইকি পৃষ্ঠাটি দেখুন:

ধরুন y = 2, n = 4, এবং মাত্র দুটি জন্মদিন রয়েছে। আপনার সূত্র, ৩5৫ কে ২ দ্বারা প্রতিস্থাপন করে অভিযোজিত, সম্ভবত 2 জন জন্মদিনে ভাগ করে নেওয়ার সম্ভাবনাটি কম্ব (4,2) * (2/2) * 2 * (1-1 / 2) * (1-2 / 2) = 0. (বাস্তবে, আপনি যদি পছন্দ করেন তবে নিষ্ঠুর বলের গণনা দ্বারা এটি দেখতে সহজ - যে 2, 3 বা 4 জন "জন্মদিন" ভাগ করে নেওয়ার সম্ভাবনাগুলি 6/16, 8/16, এবং যথাক্রমে 2/16।) প্রকৃতপক্ষে, যখনই ny> = 365, আপনার সূত্রটি 0 দেয়, যখন n বড় হয়ে যায় এবং y স্থির হয়ে যায়, সম্ভাব্যতাটি শূন্য-নূন্যতম সর্বাধিক বৃদ্ধি হওয়া উচিত এন এর আগে 365 * y পৌঁছাতে এবং তারপরে হ্রাস, তবে কখনই 0
wh

কেন আপনি দ্বারা 365 প্রতিস্থাপন করছেনn ? 2 জন জন্মদিন ভাগ করে নেওয়ার সম্ভাবনাটি গণনা করা হয়: 1 - প্রব (তাদের অনন্য জন্মদিন রয়েছে)। প্রোব (তাদের অনন্য জন্মদিন রয়েছে) = (364/365)। যুক্তিটি নিম্নরূপ: একজনকে বাছাই করুন। এই ব্যক্তির জন্মদিন হিসাবে 365 দিনের যে কোনও দিন থাকতে পারে। দ্বিতীয় ব্যক্তিটির তখন কেবলমাত্র অবশিষ্ট ৩4৪ দিনের একটিতে জন্মদিন থাকতে পারে। সুতরাং, তাদের যে অনন্য জন্মদিন রয়েছে তা হ'ল 364/365। আপনি কীভাবে 6/16 গণনা করছেন তা আমি নিশ্চিত নই।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.