序言

这几天开始刷PDD的一些算法题,有一起的找实习的小伙伴么哈哈哈 一起加油呀!!

多多鸡有N个魔术盒子(编号1~N),其中编号为i的盒子里有i个球。
多多鸡让皮皮虾每次选择一个数字X(1 <= X <= N),多多鸡就会把球数量大于等于X个的盒子里的球减少X个。
通过观察,皮皮虾已经掌握了其中的奥秘,并且发现只要通过一定的操作顺序,可以用最少的次数将所有盒子里的球变没。
那么请问聪明的你,是否已经知道了应该如何操作呢?

思路是 比如5的话,就是需要操作三次,减去3 减去 2 减去 1
那么对于N的话,减去中位数N/2是最合理的 变成
1,2,3,,,N/2 -1 , 0, 1,2,3,4,N/2
于是我们有1,2,3,4,5,,,,N/2需要造次操作
这次还是减去中位数 N/2/2 = N/4 ,变成
1,2,3,,,,,N/4-1, 0,1,2,3,4,,,N/4
于是我们有 1,2,3,4,,,,N/4
同理一直操作
则最后的次数x函数是   2 x = N 2^x = N 2x=N
所以 x = l o g 2 N x = log_2{N} x=log2​N
代码如下:

n = int(input())
for i in range(n):x =int(input())print(len(bin(x))-2)

扔n个骰子,第i个骰子有可能投掷出Xi种等概率的不同的结果,数字从1到Xi。所有骰子的结果的最大值将作为最终结果。求最终结果的期望。

输入描述:
第一行一个整数n,表示有n个骰子。(1 <= n <= 50)
第二行n个整数,表示每个骰子的结果数Xi。(2 <= Xi <= 50)
输出描述:
输出最终结果的期望,保留两位小数

输入:
2
2 2
输出:
1.75

解释是:
2,2表示这两个骰子的最大数是2,即有1,和2的可能性
所以,
当出现最大数是1的时候,只有一种可能,即 1 , 1
当出现最大数是2的时候,有1,2 + 2,1 + 2,2 三种可能性
总共的可能性是4种
所以 期望是 1*(1/4)+ 2*(3/4) = 7/4 = 1.75
【这道题理解上需要时间,然后去找规律 】
再来一个例子:

输入:
3
4 3 2
输出:

总共的可能性是 432 = 24种
当出现最大数是1的时候,只有一种可能性1,1,1,即1✖️ 1✖️ 1 = 1 种可能性 概率为1/24
当出现最大数是2的时候,可能性数为:2✖️ 2✖️ 2 - 1✖️ 1✖️ 1 = 7种可能性 概率为7/24
当出现最大数是3的时候,可能性是 3✖️ 3✖️ 2 - 2✖️ 2✖️ 2 - 1✖️ 1✖️ 1 = 10种可能性 概率为10/24
当出现最大数是4的时候,可能性是 4✖️ 3✖️ 2 - 10 - 7 -1 = 6种可能性 概率为 6/24
所以这是有规律可寻的,只要把规律写进去,即可求解:

找规律
先找到最大值 max = 4
n= 3 num = [4,3,2]
所以我们要找 最大值为1,2,3,4分别的概率为多少:
对于最大数为1时:概率为1/4 ✖️ 1/3 ✖️ 1/2 = 1/24
对于最大数为2时:概率为 2/4 ✖️ 2/3 ✖️ 2/2 - 1/24 = 1/3 = 1/24 = 7/24
对于最大数为3时:概率为 3/4 ✖️ 3/3 ✖️ 2/2 - 7/24 - 1/24 = 10/24
对于最大数为4时:概率为 4/4 ✖️ 3/3 ✖️ 2/2 - 10/24 - 7/24 - 1/24 = 6/24
因此,我们找到了规律
分母都是 num[0]= 4,num[1]=3,num[2]=2,但分子是从最大数X和num[i] 比较,谁小谁做分子
下一步就是 再减去之前的所有概率

n = int(input())
num = list(map(int,input().strip().split()))
max_num = max(num)
pre = 0
ans = 0
for i in range(1,max_num+1):
#这里是模拟最大数的变化,即当最大数为1,2,3,,,时概率的计算cur =1 for j in range(len(num)):#这里是模拟num里的计算cur = cur * min(i,num[j])/num[j]#这里是模拟类似的1/4 ✖️ 1/3 ✖️ 1/2 这一步ans += (cur - pre)*i #这里是模拟减去之前的所有概率 乘于i是计算期望 pre = cur
print("%.2f" % ans)

刷PDD笔试题--编程相关推荐

  1. 腾讯 2015秋招笔试题 编程题2:九宫格填数

    腾讯 2015秋招笔试题 编程2:九宫格填数 题目 2: 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案. 配合加减乘除,使得九宫格横竖都等于4. 智力冲浪 数字推理 请 ...

  2. 美团点评2020校招系统开发方向笔试题(编程题题解)

    这套笔试题的编程题很简单,感觉没什么可以写的题解的 [编程题]大数加法 注意下负号的情况 #include <bits/stdc++.h> using namespace std; typ ...

  3. 搜狗校招笔试题编程之一

    题目: 定义两个合数的距离为两个合数之间的质数的个数.现在输入n个偶数,求这n个偶数两两距离的和. 输入:第一行输入一个整数n. 第二行到第n+1行为从小到大排序的n个合数. 输出:输出一个数为总的距 ...

  4. vivo2020校招笔试题[编程题]报数(约瑟夫问题又称丢手绢问题)-java解决

    今年7月份vivo迎来了新入职的大学生,现在需要为每个新同事分配一个工号.人力资源部同事小v设计了一个方法为每个人进行排序并分配最终的工号,具体规则是: 将N(N<10000)个人排成一排,从第 ...

  5. 笔试题--你准备好了吗

    某某公司笔试题 编程题 1.冒泡排序的实现. 2.二位数组乘法小九九输出. 3.闰年的判断. 数据库题 给出两张表,和表的定义. 1.创建表语句. 2.增加表字段语句. 3.增加数据语句. 4.联合查 ...

  6. 2021滴滴笔试题算法题

    2021滴滴笔试题 编程题第一题: 大概是:一个优秀的操作系统,应该具有一个好的分配任务的算法,现在假设 一个任务具有等待时间和执行时间,且必须在先等待后执行,而计算机每次只能执行一个任务,但可以等待 ...

  7. 顺丰科技2018校园招聘在线笔试题

    今天做了顺丰科技的在线笔试题,选择题方面感觉考得很基础,有数据结构.编译原理方面的题目,以及设计模式的题目.编译原理的内容基本忘记了,设计模式也没有进行深入的学习,所以这两块大的并不是太好.再有就是排 ...

  8. 编程题刷题笔记(包括leetcode和各种公司笔试题)

    7/6: 做的查找中的word_ladder,没做出来. 学到了的知识点: unordered_set: 定义为unordered_set<string>dict 在集合中查找为dict. ...

  9. 数据分析真题日刷 | 京东2019校招数据分析工程师笔试题

    今日真题 网易2018校园招聘数据分析工程师笔试卷(来源:牛客网) 题型 客观题:单选51道,不定项选择12道 完成时间 120分钟 牛客网评估难度系数 3颗星 ❤️ 「更多数据分析真题」 <数 ...

最新文章

  1. Laravel之Eloquent ORM访问器调整器及属性转换
  2. 代码质量第4层——健壮的代码!
  3. 电商巨头纷纷入场中国农民丰收节交易会 谋定产销对接活动
  4. ABP框架连接Mysql数据库
  5. Linux下Nginx、MySQL、PHP5、phpMyAdmin安装与配置
  6. 字长16位的计算机表示最大整数_废话不多说跪送计算机选择8前十题
  7. 设计灵感|海报设计中常见的文字排版样式
  8. java jtable 按钮_java web 怎么在jtable中添加按钮?
  9. 保存文件_正确保存Zbrush文件
  10. Memcached、Redis、RabbitMQ
  11. 算法图解第九章笔记与习题(动态规划)
  12. 网际风全推数据接口_网际风接口软件
  13. ProE/Creo免费插件 MCADEx Tools 5.0
  14. 如何减小电压跟随器输出电阻_三分钟带你搞懂运算放大器与比较器的区别
  15. 不同IP网段连接网络打印机
  16. 接口测试, 功能测试(黑盒测试)
  17. 棋牌游戏开发制做花费,您知多少呢?
  18. Java前方交会后方交会编程_摄影测量后方交会、前方交会程序
  19. 求生之路无限火力服务器,《求生之路》终于数3了?还没开测就已经卖疯了……...
  20. 聊聊Web App、Hybrid App与Native App的设计差异

热门文章

  1. 141 条人人都该知道的健康常识
  2. boot system flash bootflash:/cat4500-entservicesk9-mz.122-31.SGA10.bin
  3. Java多线程 关闭线程池 shutdown() 、shutdownNow()、awaitTermination()
  4. 匆忙推出的Mobileme没有得到广泛的认可,用户认为它速度缓慢、价格昂贵还总是出错
  5. mimikatz初使用——简单从winlogon.exe中获取系统密码
  6. LED加入珠子和亮片做时尚陈述
  7. 096《活出生命的意义》简记
  8. matplotlib 绘制实时动态曲线图
  9. 概率与期望(小总结)
  10. linux 下切换集成显卡和独立显卡,禁用独显,解决发热问题