[面試題][數學與概率]設計隨機數生成器
假設你已經有一個隨機數生成器,能夠以概率p生成0,概率1-p生成1,請問如何設計演算法以概率q等概率地生成0-6這七個數字中的一個?即每個數字的概率均為q,q<1/7.
我們先從簡單的情況開始考慮,假設需要生成0和1,二者概率均為q。那麼我們可以讓已有的隨機數生成器產生兩個數字,那麼產生的數字及概率是:
Number | Prob |
---|---|
00 | |
01 | |
10 | |
11 |
注意到01和10的概率是相等的,所以可以當得到01時輸出0,得到10時輸出1,並令p(1-p)=q, 可以求得p的值,顯然p有兩個關於1/2的對稱解,從直觀上來理解這也是必然的,因為0和1是對稱的。
這種解法可以推廣到n個數的情況,生成的00…001對應0,00…010對應1,00…100對應2,……,01…000對應n-1,10…000對應n。同樣令
相關推薦
[面試題][數學與概率]設計隨機數生成器
假設你已經有一個隨機數生成器,能夠以概率p生成0,概率1-p生成1,請問如何設計演算法以概率q等概率地生成0-6這七個數字中的一個?即每個數字的概率均為q,q<1/7. 我們先從簡單的情況開始考慮,假設需要生成0和1,二者概率均為q。那麼我們可以
面試題15——用C++設計一個不能被繼承的類
template <typename T>class A { friend T; private: A(){} ~A(){} }; class B:virtual public A<B> { public: B(){} ~B(){} }; class C
面試題StringBuffer與StringBuilder的區別
package com.carter; import java.lang.StringBuilder; public class StringBuilderDemo { /*StringBuilder 不保證同步,用在字串緩衝區被單執行緒使用時 * 建議優
Java 面試題問與答:編譯時與執行時
在開發和設計的時候,我們需要考慮編譯時,執行時以及構建時這三個概念。理解這幾個概念可以更好地幫助你去了解一些基本的原理。下面是初學者晉級中級水平需要知道的一些問題。 Q.下面的程式碼片段中,行A和行B所標識的程式碼有什麼區別呢? public class Con
2017 Android 面試題 [ 基礎與細節 ]
感謝@chuyao丟擲的這些問題,平時業務程式碼寫多了,很多基礎的東西變得含糊不清了,這次裸辭出來找工作確實沒有之前順利,順便求上海Android開發的坑。 我自己整理了些答案,不對或者不妥的地方請大家指出,謝謝。 1. Activity建立在哪些視窗元件之上?順帶涉及View的事件傳遞問題。 沒讀懂
11月20日面試題分析與EL表示式培訓日記
今天新班開學典禮,我必須出席,所以,上午安排這個班的學員們練習昨天講解的SimpleFormController。一兩個學員瞞著我,外出找公司面試了幾把,最後問了我幾道令他們心虛的幾道面試題,下午我先為大家分析了這幾道面試題:1.在使用new關鍵字建立某個類的例項物件時,構造
Java面試題彙總與解答
2018最新Java面試題整理(持續完善中…) 宣告:面試題(無參考答案)收集自公眾號服務端思維,本人抱著學習的態度網上找了下參考答案,有不足的地方還請指正,謝謝~ 基礎篇 基本功 面向物件特徵 封裝,繼承,多型和抽象 封裝 封裝給物件提供了隱藏內部特性
java面試題---GET與POSt提交請求的區別
概要: 一、Http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,我們可以這樣認為:一個URL地址,它用於描述一個網路上的資
面試題-冒泡與捕獲、事件委託、ie事件和dom模型事件、滑鼠事件
一直沒有搞懂jquery中的事件是怎麼新增事件處理程式的。原來就是用了事件委託,關鍵就是通過冒泡方式實現在最高層(document)處理事件,通過判斷事件target的id,給以不同的handler。當然也可以通過事件捕獲來處理,但是因為ie中只有冒泡,所以還是用
R語言︱分佈函式與概率密度+隨機數產生
1、常見概率分佈##正態分佈 pnorm(1.96) #P(x<=1.96)時的分佈概率 pnorm(1.96,0,1) #上同 pnorm(1
Java面試題--關於 OOP 和設計模式
這部分包含 Java 面試過程中關於 SOLID 的設計原則,OOP 基礎,如類,物件,介面,繼承,多型,封裝,抽象以及更高階的一些概念,如組合、聚合及關聯。也包含了 GOF 設計模式的問題。 103)介面是什麼?為什麼要使用介面而不是直接使用具體類? 介面用於定義 API
Java面試題 equals()與"=="的區別?
面試官:請問 equals() 和 "==" 有什麼區別? 應聘者: equals()方法用來比較的是兩個物件的內容是否相等,由於所有的類都是繼承自java.lang.Object類的,所以適用於所有物件,如果沒有對該方法進行覆蓋的話,呼叫的仍然是Object類中的方法,而Object中的equa
ArrayList和CopyOnWriteArrayList面試題總結與原始碼分析
面試題 (1)ArrayList和CopyOnWriteArrayList的增刪改查實現原理? (2)為什麼說Arr
what's the python之可叠代對象、叠代器與生成器(附面試題)
urn for循環 生成器 出現 擁有 移動 iterable 文本 協議 可叠代對象 字符串、列表、元祖、集合、字典都是可叠代的,數字是不可叠代的。(可以用for循環遍歷取出內部元素的就是可叠代的) 如何查看一個變量是否為可叠代: from collections im
Java進階面試題列表 面向對象編程的基本理念與核心設計思想
編程 ber 異同 lar domain spring 日常 beans erl 解釋下多態性(polymorphism),封裝性(encapsulation),內聚(cohesion)以及耦合(coupling)。 繼承(Inheritance)與聚合(Aggregati
面試題常見演算法之等概率生成隨機數
題目:隨機數函式a,產生0的概率0.7,1的概率0.3。怎樣用該隨機函式生成一個隨機函式b,使得b產生0和1的概率為0.5 程式碼實現如下: #include<iostream> us
企業Shell面試題14:開發腳本入侵檢測與報警案例
開發腳本入侵檢測與報警案例、md5sum指紋、 面試及實戰考試題:監控web站點目錄(/var/html/www)下所有文件是否被惡意篡改(文件內容被改了),如果有就打印改動的文件名(發郵件),定時任務每3分鐘執行一次。1.1問題分析1)首先要說明的是,思考過程的積累比實際代碼開發的能力積累更重
九章算法-面試題總結(算法、強化算法、系統設計高清視頻觀看)
1 落單的數 題目描述: 有2n+1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求O(n)的時間復雜度,O(1)的空間復雜度。 進階問題:如果有2n+2個數,其中有2個數落單,該怎麽辦? 分析 初階:將2n+1個數異或起來,相同的數會
從一道面試題來認識java類加載時機與過程【轉】
包含 布局 hello 印象 大致 周期 default () itl 說明:本文的內容是看了《深入理解Java虛擬機:JVM高級特性與最佳實踐》後為加印象和理解,便記錄了重要的內容。 1 開門見山 以前曾經看到過一個java的面試題,當時覺得此題很簡單,可是自己
js面試題-----作用域與閉包
code 生命 結果 bin 聲明 click 函數 i++ spa 1、問題代碼: var length = 10; function fn(){ console.log(this.length); } var obj = { length:5,