重出江湖;及選擇旅遊國家分析

紫鳳發表於2013-08-02

今日面試題:重出江湖

n個色子,每個色子m面,每一面的值分別是1-m。你將n個色子同時拋,落地後將所有朝上面的數字加起來,記為sum。給定一個數字x,如果sum>x,則你贏。給定n,m,x,求你贏的概率。

  • 1<=n<=100
  • 1<=m<=10
  • m<=x

選擇旅遊國家分析:

原題

有一個待選國家的列表,以及國家的相對熱門程度,請給出一個演算法,隨機選擇一個國家,並且保證,越是熱門的國家,隨機選擇它的可能性就越高。

分析

每當我們遇到一個題目的時候,都要對題目進行充分的理解,有哪些條件,目標是什麼。這個題目看完之後,我們能夠得到兩個要點:

  隨機選擇一個國家

  越是熱門,選擇的可能性、概率就越高

我們怎麼做到這個呢?如何充分理解這個呢?還是通過一個例子來進行:

國家 A B C D
熱度 1 2 5 2

隨機選擇一個國家,意味著,如果熱度相同,則被選擇的概率是相同的,更進一步,都可以表示為2/10。依次類推,A被選擇的概率是1/10,熱度最小,則概率最小。並且,概率之間的比,和熱度之間的比是相同的。

那麼,我們以怎麼樣的方法,來保證,選擇A的概率是1/10,B和D的概率是2/10,C的概率是5/10?我們稍作變換,將上面的表格,轉換為如下的表格:

A B B C C C C C D D

我們只要保證,選擇上面表格中每一個元素的概率是相同的,就可以得到A,B,C,D的概率值。如何保證呢?兩種情況:

  當國家數以及熱度都是固定時,比如上面的總數10,隨機0-9的數字,即可。

  當國家數以及熱度都是不固定時,則需要蓄水池抽樣演算法

蓄水池抽樣法,在我們前面的系列中有介紹,是時候翻開起那麼的東西,複習一下了。

本文來自微信:待字閨中,2013-07-29釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。

相關文章