众所周知,每一枚硬币都有两面,假定投掷一枚硬币,得到正面和反面的概率是一样的。小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枚硬币相关推荐

  1. 腾讯2019技术岗笔试 小Q非常喜欢复读,有时候,小Q会得到某个字符串S。这时他会把s不断重复不断重复连成一个无限长的串。比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是:

    小Q非常喜欢复读,有时候,小Q会得到某个字符串S.这时他会把s不断重复不断重复连成一个无限长的串.比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是: abcabcabcabcab ...

  2. 腾讯2019技术岗笔试 花匠小Q 花匠小Q养了两种花,一种白花,一种红花,现在小Q用这些花进行摆放,摆放的时候连续的白花的数量只能是K的倍数(倍数可以是0),不然就会枯萎。现在给出a和b,小Q想知道长

    花匠小Q养了两种花,一种白花,一种红花,现在小Q用这些花进行摆放,摆放的时候连续的白花的数量只能是K的倍数(倍数可以是0),不然就会枯萎.现在给出a和b,小Q想知道长度为[a,b]的摆花方案中有多少种 ...

  3. Interview:算法岗位面试—11.05下午上海某银行信息(总行,四大行之一)技术岗笔试记录

    Interview:算法岗位面试-11.05下午上海某银行信息(总行,四大行之一)技术岗笔试记录 导读:这次记住了上次银行考试的教训,提前选择了离着学校较近的考点.这次笔试比上次银行考试相对简单,但是 ...

  4. 腾讯2019秋招笔试真题

    1.小Q爬塔 描述:小Q正在攀登一座宝塔,这座塔很特别,塔总共有n曾层,但是没两层之间的净高却不相同,所以造成了小Q爬过每层的时间也不同.如果某一层的高度为x,那么爬过这一层锁需的还是件也是x.小Q孩 ...

  5. 完全二叉树总结点叶子结点计算公式题型总结--技术岗笔试(持续更新)

    最近笔试接触到了很多二叉树的公式,但很奇怪的是没有汇总文章,接下来就我自己所见到的题型做个汇总.干货~ Q1.已知完全二叉树总结点数 N,求叶子结点数 n? 如果是偶数个节点,叶子节点等于总节点除以2 ...

  6. 阿里-2019算法岗笔试编程题-kmp匹配

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_25737169/article/details/82503724 </div>&l ...

  7. 【2023春招】美团技术岗笔试10min+AK

    随手投递了前端&移动端,笔试2道算法+选择+行测题(为什么笔试会有行测题?) 目录 T1-火车栈结构 题意 输入描述 输出描述 样例 AC_Code T2-春游

  8. 腾讯2019秋招笔试真题 1.小Q爬塔 2.妞妞的问题

    1.小Q爬塔 [问题描述]小Q正在攀爬一座宝塔,这座宝塔很特别,塔总共有n层,但是两层之间的净高却不相同,所以造成小Q爬过每层的时间也不同.如果某一次高度为x,那么爬过这一层所需时间也就是x.小Q还会 ...

  9. 【笔试】春招秋招技术岗笔试必考题归纳总结

    目录 一.数据结构必考 1. 排序算法 1)什么时候用什么排序算法类 2)排序算法的稳定性 3)排序算法的时间复杂度&空间复杂度 4)不同时间复杂度的大小关系 5)时间复杂度与空间复杂度的关系 ...

最新文章

  1. pip3 install numpy
  2. html弹窗中的layer,ModalLayer弹窗控件(原创)
  3. 电脑计算机的硬盘那些可以删除吗,我的电脑出现多个可移动磁盘该怎么删除?...
  4. python中strip、startswith、endswith
  5. 使用python3连接hiveserver2的方法
  6. oracle和mysql分组排序取第一条数据
  7. flutter-dart
  8. centos 6.5 yum
  9. IDC发布2018中国AI服务器销量报告:浪潮领头,交通应用增幅最猛
  10. Angular 在项目中使用fullcalendar 日程表
  11. 白话machine learning之Loss Function
  12. C程序设计实践——实验指导
  13. 国密SM2/SM3算法在单片机平台上的实现(C语言)
  14. 看看五年MacBook使用经验平常都用那些软件
  15. kms服务器修改,kms服务器ip地址修改
  16. ubuntu设置软件安装源为阿里云
  17. SAS中的intnx函数
  18. 从京东双11战报中,找到未来值得国产品牌看好的发展机遇
  19. MeasureSpec源码解读
  20. 欧美插画系列-张聪-专题视频课程

热门文章

  1. WK2124 驱动移植
  2. Windows 上帝模式「完全控制面板」的介绍和使用
  3. C语言——判断素数的几种方法以及相关题目
  4. 【辣子鸡的家常做法】
  5. 从蓝光到4K,腾讯视频高码率下载背后的技术
  6. ppt python 图表_5分钟python:在PPT里做三联柱形图
  7. 来自中国的人工智能解决方案,如何风靡全球数亿用户?
  8. Rethinking Image Aesthetics Assessment:Models,Datasets and Benchmarks
  9. keil—MDK字体配色方案
  10. (深度学习论文精读总结)You Only Look Once: Unified, Real-Time Object Detection