概率計(jì)算

一般筆試面試中常會(huì)有概率問題的出現(xiàn)(算法較多),他們有這樣的規(guī)律:


概率的應(yīng)用有兩塊:


現(xiàn)在我們來看案例:

案例1



所以兩強(qiáng)不相遇的概率為
\frac{105 - 60}{105} = \frac{3}{7}

那么兩強(qiáng)相遇的概率為
\frac{4}{7}

案例2


案例3


案例4



關(guān)于步驟5的解釋是,如果產(chǎn)生了21,22,23,24,那么重新進(jìn)行步驟4,直到結(jié)果在0到20之間,這樣產(chǎn)生21到24的概率會(huì)平均分配到0~20之間。但是我的疑問是,如果用其他方法,不也可以這么產(chǎn)生嗎?

案例5


案例6


如果調(diào)用f()兩次,返回的結(jié)果仍然是[0, X)區(qū)間上的話,那么兩次調(diào)用f()的返回值都必須落在[0, X)區(qū)間上,否則就會(huì)返回大于X的數(shù)了。所有,k次同理

案例7

首先,先插一條程序

//這個(gè)程序確實(shí)證明了Math.random()是從[0,1)隨機(jī)的,但是這里不能用,因?yàn)榭赡?//打印M個(gè)數(shù)的時(shí)候,有可能重復(fù)打印。
public static void main(String[] args){
        int[] array = new int[]{1, 2, 3, 4, 5};
        ArrayList<Integer> list1 = new ArrayList<>();
        ArrayList<Integer> list2 = new ArrayList<>();
        ArrayList<Integer> list3 = new ArrayList<>();
        ArrayList<Integer> list4 = new ArrayList<>();
        ArrayList<Integer> list5 = new ArrayList<>();
        for(int i = 0; i < 100000; i++){
            int num = array[(int)(Math.random() * array.length)];
            if(num == 1){
                list1.add(num);
            }else if(num == 2){
                list2.add(num);
            }else if(num == 3){
                list3.add(num);
            }else if(num == 4){
                list4.add(num);
            }else if(num == 5){
                list5.add(num);
            }
        }
        System.out.println(list1.size());
        System.out.println(list2.size());
        System.out.println(list3.size());
        System.out.println(list4.size());
        System.out.println(list5.size());
    }


把每次打印的數(shù)都交換到最后,是防止重復(fù)打印

案例8





最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容