赠券收集者问题 - 卖程序的小歪 - 博客园



赠券收集者问题 - 卖程序的小歪 - 博客园

赠券收集者问题

赠券收集者问题(coupon collector's problem),就是买东西的时候会又不同的卡片赠送,求集齐这些卡片需要购买的产品的数量的期望值。
见wiki [coupon collector's problem https://en.wikipedia.org/wiki/Coupon_collector%27s_problem]

以一个例子来说明:有种食品每袋都会附赠一张卡片,共有10种卡片,每种卡片出现的概率相等。

首先来求当拥有i种卡片时,再拆开一袋得到不同卡片的概率Pi:

a. 当我们没有任何卡片时,随意拆开就能得到一种不同的卡片,即第一种得到的卡片P0 = 1

b. 当有了一种继续拆,此时得到新的种类的概率为P1 = 9 / 10
...当有了i种,此时得到新种类的概率为Pi = (10 - i) / 10

我们知道了Pi的值,那么对于拆了i包后,拆开发现新卡片的次数期望为E = Pi * Ni,由于只需要然其发生一次即可令E=1反过来求对应的Ni,Ni = 1 / Pi,即拆1 / Pi包时可以发现一种新卡片(相对于已经拥有i种卡片)。

那么发现全部卡片总共需要的包数 = N0 + N1 + N2 ... N9 = 10 / 10 + 10 / 9 + 10 / 8 ... 10 / 1 = 29.289682539682538

即按期望来,买30包可以集齐卡片。

下面给出了卡片等概率出现时,集齐卡片的期望次数:


Read full article from 赠券收集者问题 - 卖程序的小歪 - 博客园


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts