腾讯2019技术岗笔试 猜硬币 众所周知,每一枚硬币都有两面,假定投掷一枚硬币,得到正面和反面的概率是一样的。小Q有一天和好朋友在玩投掷硬币的游戏,他投了n枚硬币,已知至少有p正,q反,求n枚硬币
众所周知,每一枚硬币都有两面,假定投掷一枚硬币,得到正面和反面的概率是一样的。小Q有一天和好朋友在玩投掷硬币的游戏,他投了n枚硬币,已知至少有p正,q反,求n枚硬币正面向上的期望是多少。
分析:
1.根据样例,分数取模的公式为:
其中4是期望的分子,3是期望的分母printf("%d\n",(4%1000000007+1000000007)/3);
原理:
https://www.cnblogs.com/dear_diary/p/10835168.html
下面是“分数”模运算的定义:
b, m互质
k = a/b (mod m) <=> kb = a (mod m)
这里求 x = 1/17 (mod 2668)
<=>17x = 1 (mod 2668)
<=>17x = 2668k + 1 (k∈整数)
取合适的k使得17|(2668k+1)
这里刚好17 | (2668 + 1)
所以k = 1, x = (2668+1)/17 = 157
当然,当k = 1 + 17n 时,
x = (2668 + 17·n·2668 + 1)/17 = 157 + 2668n
也符合条件(n任意整数)
但如果限定 2668 > x > 0,x是唯一的。
2.计算期望
(1)首先要计算多少情况,
比如:3 1 0时,由于硬币根据题意是不相同的,存在排列数。
正最少1个 | 负最少0个 | 种类数 |
---|---|---|
1 | 2 | C31=3 从3个里选出一个为正,剩下的是反 |
2 | 1 | C32=3 从3个里选出2个为正 |
3 | 0 | C33=1 从3个里选出3个为正 |
所以有1+3+3=7种,
计算期望:
(1/7*
1)*
C31+(1/7*
2) *
C32+(1/7*
3)*
C33=9/7
比如:2 1 0时,由于硬币根据题意是不相同的,存在排列数。
正最少1个 | 负最少0个 | 种类数 |
---|---|---|
1 | 1 | C21=2 从2个里选出一个为正,剩下的是反 |
2 | 0 | C22=1 从2个里选出2个为正 |
有3种
计算期望:
(1/3*
1)*
C21+1/3*
2 = 4/3
这样一来就很简单了,按照上面的思路写代码:
#include <stdio.h>
#include <stdlib.h>/**
* 计算n!
**/
int CalcuNum(int num){int i=1;int calcu=1;do{calcu*=i;i++;}while(i<=num);//printf("%d n!=%d\n",num,calcu);return calcu;
}/**
* 计算排列数Cin,i=up,n=num
*/
int CalcuCn(int up,int num){return CalcuNum(num)/(CalcuNum(up)*CalcuNum(num-up));
}int main()
{int num=0;int pos=0;int neg=0;scanf("%d %d %d",&num,&pos,&neg);int i=pos;int category=0;int exceptup=0;for(i=pos;i<=num-neg;i++){//计算种类数int cn=CalcuCn(i,num);category+=cn;printf("%d个正, %d个反,有%d种,累计%d种\n",i,num-i,cn,category);//计算期望的分子exceptup+=cn*i;}//期望=期望的分子/排列种类数目printf("求模得到:\n");printf("%d\n",(exceptup%1000000007+1000000007)/category);return 0;
}
腾讯2019技术岗笔试 猜硬币 众所周知,每一枚硬币都有两面,假定投掷一枚硬币,得到正面和反面的概率是一样的。小Q有一天和好朋友在玩投掷硬币的游戏,他投了n枚硬币,已知至少有p正,q反,求n枚硬币相关推荐
- 腾讯2019技术岗笔试 小Q非常喜欢复读,有时候,小Q会得到某个字符串S。这时他会把s不断重复不断重复连成一个无限长的串。比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是:
小Q非常喜欢复读,有时候,小Q会得到某个字符串S.这时他会把s不断重复不断重复连成一个无限长的串.比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是: abcabcabcabcab ...
- 腾讯2019技术岗笔试 花匠小Q 花匠小Q养了两种花,一种白花,一种红花,现在小Q用这些花进行摆放,摆放的时候连续的白花的数量只能是K的倍数(倍数可以是0),不然就会枯萎。现在给出a和b,小Q想知道长
花匠小Q养了两种花,一种白花,一种红花,现在小Q用这些花进行摆放,摆放的时候连续的白花的数量只能是K的倍数(倍数可以是0),不然就会枯萎.现在给出a和b,小Q想知道长度为[a,b]的摆花方案中有多少种 ...
- Interview:算法岗位面试—11.05下午上海某银行信息(总行,四大行之一)技术岗笔试记录
Interview:算法岗位面试-11.05下午上海某银行信息(总行,四大行之一)技术岗笔试记录 导读:这次记住了上次银行考试的教训,提前选择了离着学校较近的考点.这次笔试比上次银行考试相对简单,但是 ...
- 腾讯2019秋招笔试真题
1.小Q爬塔 描述:小Q正在攀登一座宝塔,这座塔很特别,塔总共有n曾层,但是没两层之间的净高却不相同,所以造成了小Q爬过每层的时间也不同.如果某一层的高度为x,那么爬过这一层锁需的还是件也是x.小Q孩 ...
- 完全二叉树总结点叶子结点计算公式题型总结--技术岗笔试(持续更新)
最近笔试接触到了很多二叉树的公式,但很奇怪的是没有汇总文章,接下来就我自己所见到的题型做个汇总.干货~ Q1.已知完全二叉树总结点数 N,求叶子结点数 n? 如果是偶数个节点,叶子节点等于总节点除以2 ...
- 阿里-2019算法岗笔试编程题-kmp匹配
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_25737169/article/details/82503724 </div>&l ...
- 【2023春招】美团技术岗笔试10min+AK
随手投递了前端&移动端,笔试2道算法+选择+行测题(为什么笔试会有行测题?) 目录 T1-火车栈结构 题意 输入描述 输出描述 样例 AC_Code T2-春游
- 腾讯2019秋招笔试真题 1.小Q爬塔 2.妞妞的问题
1.小Q爬塔 [问题描述]小Q正在攀爬一座宝塔,这座宝塔很特别,塔总共有n层,但是两层之间的净高却不相同,所以造成小Q爬过每层的时间也不同.如果某一次高度为x,那么爬过这一层所需时间也就是x.小Q还会 ...
- 【笔试】春招秋招技术岗笔试必考题归纳总结
目录 一.数据结构必考 1. 排序算法 1)什么时候用什么排序算法类 2)排序算法的稳定性 3)排序算法的时间复杂度&空间复杂度 4)不同时间复杂度的大小关系 5)时间复杂度与空间复杂度的关系 ...
最新文章
- pip3 install numpy
- html弹窗中的layer,ModalLayer弹窗控件(原创)
- 电脑计算机的硬盘那些可以删除吗,我的电脑出现多个可移动磁盘该怎么删除?...
- python中strip、startswith、endswith
- 使用python3连接hiveserver2的方法
- oracle和mysql分组排序取第一条数据
- flutter-dart
- centos 6.5 yum
- IDC发布2018中国AI服务器销量报告:浪潮领头,交通应用增幅最猛
- Angular 在项目中使用fullcalendar 日程表
- 白话machine learning之Loss Function
- C程序设计实践——实验指导
- 国密SM2/SM3算法在单片机平台上的实现(C语言)
- 看看五年MacBook使用经验平常都用那些软件
- kms服务器修改,kms服务器ip地址修改
- ubuntu设置软件安装源为阿里云
- SAS中的intnx函数
- 从京东双11战报中,找到未来值得国产品牌看好的发展机遇
- MeasureSpec源码解读
- 欧美插画系列-张聪-专题视频课程
热门文章
- WK2124 驱动移植
- Windows 上帝模式「完全控制面板」的介绍和使用
- C语言——判断素数的几种方法以及相关题目
- 【辣子鸡的家常做法】
- 从蓝光到4K,腾讯视频高码率下载背后的技术
- ppt python 图表_5分钟python:在PPT里做三联柱形图
- 来自中国的人工智能解决方案,如何风靡全球数亿用户?
- Rethinking Image Aesthetics Assessment:Models,Datasets and Benchmarks
- keil—MDK字体配色方案
- (深度学习论文精读总结)You Only Look Once: Unified, Real-Time Object Detection