搬運字節跳動算法面試題

搬運字節跳動算法面試題:

題目描述:
10個小球,隨機分到12個盒子裏,求恰好10個盒子都爲空的概率。要求用程序模擬十萬次,暴力求出該概率
題目分析:我們可以利用反求法,10個小球分別放在10個不同的盒子的情況是容易判斷的吧,只要求出這個數目,取反就好了,模擬隨機分配使用random函數
不知道對不對的代碼貼一下😂😂😂:

class Solution{
    public boolean isOK(){
        int cnt = 10;
        boolean  f  =false;
        boolean[] mark = new boolean[10];
        while(!f&&cnt!=0){
           int num = (Math.random())*12;
           if(mark[num]) f = true;
           mark[num] = true;
           cnt--;
        }
        return !f;
     }
  public int solve() {
    int sum = 0;
    for(int i = 0;i < 100000;i++){
        if(isOK()) sum++;
    }
      return sum/100000;
  }

}

大致思路吧。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章