搬运字节跳动算法面试题

搬运字节跳动算法面试题:

题目描述:
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;
  }

}

大致思路吧。。。

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