搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
盐析白兔
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
前后端分离nginx部署
2
linux CPU主频设置_scaling_cur_freq
3
网络地址转换协议NAT
4
【Android组件化】一文教你玩转APT_super apt
5
鸿蒙开发实战项目(三十二):slider组件的使用(JS)
6
Spring boot 和 Vue 前后端分离项目的启动部署(详细版)_启动前后端分离的vue+springboot项目
7
element-ui 分页器中的 :current-page.sync是干什么的
8
windows connect、接收发送超时 setsocketopt
9
[HCIP-IoT Developer V2.5 题库] 1-50 题 华为_通过北向api获取lwm2m的资源列表,可以通过那种http请求方式
10
盯住未来!揭秘英特尔的AI芯片生意_英特尔ai开源
当前位置:
article
> 正文
直通BAT--数据结构与算法十一(概率)_八个队三个强队中概率
作者:盐析白兔 | 2024-03-13 01:20:23
赞
踩
八个队三个强队中概率
概率常考题型:
概率与期望的计算
利用古典概率进行计算:组合数学
随机数发生器:利用一个随机数发生器构造另一个随机数发生器
1.球队分组问题
8只球队,有3个强队,5只弱队,随机把它们分成4组比赛,每组两个队,问两支强队在一起的概率是多大?
分析:
8只球队分成两两一队:首先随机选一个人,他从剩余的7个中选择一个组队有7中情况;再随机选一个人,他从剩余的5个中选择一个组队有5种情况;再随机选一个人,他从剩余的3个中选择一个组队有3种情况;最后两个组成一队。则共有7*5*3=105种情况。
没有2只强队在一个队:在5只弱队中选3只,与强度进行比赛有C(5,3)种情况;3只强队与3只弱队配对共有A(3,3)种情况;剩下的2只组队;共有C(5,2)*A(3,3)=60;
两支强队在一起的概率:(105-60)/105=3/7。
2.蚂蚁相遇问题
3只蚂蚁从正三角形的三个顶点沿着边移动,速度相同,问它们碰头的概率多大?
分析:
3只蚂蚁中,每只蚂蚁的方向有2种,即共有8中情况。
不相遇的情况:3只蚂蚁方向均逆时针或顺时针,共2种情况。
相遇的概率:(8-2)/8=3/4。
3.男女比例问题
某地区重男轻女,一个家庭如果生出一个女孩则一直生,直到生出男孩就停止生育。假如一次只生一个孩子,问时间足够长后,男女比例是多少?
分析:
假设总共有n个家庭,其中有n/2为男孩,则男孩有n/2个;
剩下的n/2个女孩家庭,其中有n/4为男孩,n/4为女孩;
剩下的n/4个女孩家庭,其中有n/8为男孩,n/8为女孩;
。。。。。。
最后孩子总数为n/2+n/4*2+n/8*3+......+n/2^n*n=n*(Σ(i/(2^i))=2*n;
其中每家均有一个男孩,男孩个数为n;
则最后的比例为1:1。
4.随机函数
给定一个等概率随机产生1-5的随机函数,除此之外,不能使用任何额外的随机机制,请实现等概率随机产生1-7的随机函数。
分析:
1.已经有等概率产生1、2、3、4、5的随机函数
2.根据步骤1,得到的结果减1,将得到f()->0、1、2、3、4
3.f()*5->0、5、10、15、20
4.f()*5+f()->0、1、2、3......23、24
5.如果步骤4产生的数大于20,则重复继续能给你步骤4,直到产生的结果在0-20之间
6.步骤5将等概率随机产生0-20,所以步骤5的结果%7之后等概率产生0-6
7.步骤6的结果加1,等概率产生1-7
5.随机01
给定一个以p概率产生0,以1-p概率产生1的随机函数RandomP::f(),p是固定的值,但你并不知道是多少。除此之外也不能使用任何额外的随机机制,请用RandomP::f()实现等概率随机产生0和1的随机函数。
分析:
两次连续执行随机函数,产生结果可能为00、01、10、11;
如果是00、11则放弃;
如果是01则返回0,如果是10则返回1;
01与10产生的概率相等。
6.机器吐球问题
有一个机器按自然数序列的方式吐出球,1号球,2号球,3号球等等。你有一个袋子,袋子里最多只能装下K个球,并且除袋子以外,你没有更多的空间,一个球一旦扔掉,就再也不可拿回。
设计一种选择方式,使得当机器吐出第N号球的时候,你袋子中的球数是K个,同时可以保证从1号球到N号球中的每一个,被选进袋子的概率都是K/N。
举一个更具体的例子,有一个只能装下10个球的袋子,当吐出100个球时,袋子里有10 球,并且1~100号中的每一个球被选中的概率都是10/100。然后继续吐球,当吐出1000个球时,袋子里有 10 个球,并且1~1000号中的每一个球被选中的概率都是10/1000。继续吐球,当吐出i个球时,袋子里有10个球,并且1~i号中的每一个球被选中的概率都是10/i。也就是随着N的变化,1~N号球被选中的概率动态变化成k/N。
请将吐出第N个球时袋子中的球的编号返回。
分析:
当N<=k时,球被选中的概率为k/N>1,则一定被放入袋子
当N==k+1时,若k+1号球留下的概率为k/(k+1),其中已经在袋子中的球不留下的概率为k/(k+1)*(1/k)=1/(k+1);已经在袋子中的球留下的概率为1-1/(k+1)=k/(k+1)即全部留下的概率均为K/N 。
当N==k+2时,若k+2号球留下的概率为k/(k+2),其中已经在袋子中的球不留下的概率为k/(k+2)*(1/k)=1/(k+2);已经在袋子中的球留下的概率为1-1/(k+2)=k/(k+2)即全部留下的概率均为K/N 。
以此类推,则保证若N号球留下的概率为k/N时,每个球在袋中的概率均为k/N。
class Bag {
public:
vector<int> ret;
// 每次拿一个球都会调用这个函数,N表示第i次调用,从0开始算
vector<int> carryBalls(int N, int k) {
if(N < k){
ret.push_back(N);
}else{
int num = rand()%N;
if(num < k){
ret[num] = N;
}
}
return ret;
}
};
本文内容由网友自发贡献,转载请注明出处:
https://www.wpsshop.cn/w/盐析白兔/article/detail/227068
推荐阅读
article
【
数据结构
】
二叉树
——
堆
如何
实现
_
二叉树
建
堆
...
二叉树
的顺序结构;
堆
的概念及结构;
堆
向下调整的算法;
堆
的代码
实现
;
堆
排序;TOP-K问题_
二叉树
建
堆
二叉树
建
堆
...
赞
踩
article
python
列表
定义其中
元素
在第几个位置_
Python
之路
---
数据结构
...
数据容器(
数据结构
)前面我们介绍了
Python
最底层的基本数据类型:布尔型、整型、浮点型以及字符串型。本章将要提到的...
赞
踩
article
《
数据结构
》
第七章
图
(
未完
)
_
数据结构
第七章
湖北
理工学院
...
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、
图
的定义和基本术语①顶点的有穷非空集合;②边...
赞
踩
article
【
系统
学习
】2-
Java
进阶知识总结-3-集合-1-补充
【
泛型
、
树
、
数据结构
】...
含义的理解还不够深入
泛型
:指广泛的数据类型本质:是参数化类型,即操作的数据类型被指定为一个参数。用途:
泛型
可以用在类
、
接...
赞
踩
article
【
数据结构
】二、线性
表
:2.单链
表
的
插入
、
删除
、
查找
...
单链
表
按位
查找
是指根据节点在链
表
中的位置(即节点序号或下标)来
查找
节点的操作。通常情况下,我们需要
查找
的节点序号是从1开...
赞
踩
article
【
数据
结构
】二、线性
表
:
6.
顺序
表
和
链
表
的对比不同(从
数据
结构
三要素讨论
:
逻辑
结构
、物理
结构
(
存储
结...
若分配空间过大,则浪费内存资源。若元素占用空间很大,那么移动元素花费的时间要比查找元素花费是时间代价更大。只需分配一个头...
赞
踩
article
数据结构
-
堆
...
这篇博客将介绍
堆
的概念以及
堆
的实现。
数据结构
-
堆
这篇博客将介绍
堆
的概念以及
堆
的实现。 1....
赞
踩
article
【
数据结构
】二、线性表:5.
静态
链表
的
定义
及其
基本操作
(
定义
、
初始化
、
插入
、
查找
、删除、遍历、长度、...
10//
静态
链表
的最大长度//
静态
链表
结构类型的
定义
,并且使用typedef进行重命名为SLinkList[MaxSiz...
赞
踩
article
【
数据结构
】
二叉树
...
双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点;孩子结点或子结点:一个结点含有的子树的根结点称为...
赞
踩
article
【
数据结构
】
一
、
数据结构
的
基本概念
...
**
数据结构
**是相互之间存在
一
种或多种特定**关系**
的
数据元素
的
集合。
数据结构
这门课着重关注
的
是数据元素之间
的
关系,...
赞
踩
article
【
数据结构
】二、线性
表
:3.
双链
表
的定义及其
基本操作
(
初始化
、头
插
法尾
插
法建
表
、
插
入
、
遍历
查找
、
删除
...
对于只需要顺序
遍历
或仅从头部开始操作的情况,单链
表
可能是更简洁和高效的选择。但对于需要在两个方向上
遍历
或在任意位置
插
入
或...
赞
踩
article
【
数据结构
】二、线性
表
:2.
单链
表
的
建立
(尾
插法
实例、头
插法
)...
通过将用户输入
的
数据逐个添加到链
表
的
尾部,可以方便地保存输入
的
数据,并在后续处理中使用。头
插法
建立
单链
表
的
特点是:新节点...
赞
踩
article
【
数据结构
】史上最好理解
的
红
黑树
讲解,让你彻底搞懂
红
黑树
...
狂肝半个月
的
学习笔记,最通俗易懂
的
红
黑树
讲解。带你快速掌握
红
黑树
~_
红
黑树
红
黑树
目录 一、
红
...
赞
踩
article
数据结构
:直接
插入
排序
,
希尔
排序
,
选择
排序
,
堆
排序
,
冒泡
排序
,
快速
排序
,
归并
排序
,
计数
排序
(C实现)...
排序
:使一串数据
,
按照其中的某个或某些关键字的大小
,
递增或递减的排列起来的操作。以上就是我对于直接
插入
排序
,
希尔
排序
,
选...
赞
踩
article
【
数据结构
】认识
红黑树
--
map
/
set
的
底层原理_
map
红黑树
...
**
红黑树
**也叫RB树(Red-Black Tree),实际就是一种二叉搜索树,只是它
的
节点不是通过平衡因子来控制树
的
...
赞
踩
article
【
数据结构
】
红
黑树
_n个内部
节点
的
红
黑树
的
高度...
概述RBT,RedBlackTree应用场景在JDK1.8
的
HashMap中,为了解决过度哈希冲突带来
的
长链表,会将链表...
赞
踩
article
数据结构
:
什么
是
红
黑树
?
为
什么
要用
红
黑树
?
_
红
黑树
的作用...
本篇主要谈谈对
红
黑树
的理解,大家都晓得JDK8中的hashmap底层是数组+链表+
红
黑树
实现的,当面试官问你:为啥要加上...
赞
踩
article
数据结构
(高阶)
—
—
红黑树
_
红黑树
数据结构
...
红黑树
,是一种二叉搜索树,但在每个结点上增加了一个存储位表示结点的颜色,可以使Red或Black。通过对任何一条从根到叶...
赞
踩
article
【
数据结构
】
红黑树
_
红黑树
判断
csdn
...
红黑树
_
红黑树
判断
csdn
红黑树
判断
csdn
红黑树
一、红...
赞
踩
article
【
数据结构
】
红黑树
(
R
-B
Tree
)
_
rbortree
...
定义
红黑树
(
R
ed-Black
Tree
)
是一棵含有红黑结点、能够自平衡的的二叉排序树。它满足如下定义:1
)
每个结点或为...
赞
踩
相关标签
数据结构
算法
c语言
python列表定义其中元素在第几个位置
java
学习
c++
链表