当前位置:网站首页>码蹄集 - MT2165 - 小码哥的抽卡之旅1
码蹄集 - MT2165 - 小码哥的抽卡之旅1
2022-08-04 16:34:00 【Tisfy】
小码哥的抽卡之旅1
时间限制:1秒
空间限制:128M
题目描述
小码哥最近迷上了一款抽卡游戏。单抽出金的概率是0.6%,如果前89发都不出金,则90发必出金。小天目前存了一些抽数,想要你帮他算算他出金的概率。
输入描述
一个整数n,表示小码哥的抽数
数据范围
1<=n<=90
输出描述
一个百分数p,表示出金的概率,保留六位小数(按所给样例)
样例一
输入
1
输出
0.600000%
题目分析
好像和原神的抽卡一模一样
抽 0 0 0次中奖的概率是 0 0 0,不中奖的概率是 1 1 1
抽 1 1 1次中奖的概率是 1 × 0.006 = 0.006 1\times 0.006 = 0.006 1×0.006=0.006,不中的概率是 1 − 0.006 = 0.994 1 - 0.006 = 0.994 1−0.006=0.994
2 2 2次抽奖机会能中奖的概率是 0.006 + 0.994 × 0.006 = 0.011964 0.006 + 0.994\times 0.006 = 0.011964 0.006+0.994×0.006=0.011964
⋯ \cdots ⋯
注意,我描述 2 2 2次抽奖的时候,说的不是抽2次中奖的概率。
两次抽奖机会不等于抽2次中奖
两次抽奖机会是指最多抽两次,哪一次中奖都可以
抽2次中奖是指前 1 1 1次没中奖,第 2 2 2次中奖了
AC代码
其实做题的时候我忘特判 90 90 90发必中了, 90 90 90次机会能中奖的概率是 41.819882 % 41.819882\% 41.819882%,但是AC了。AC代码不等于正确代码
/* * @Author: LetMeFly * @Date: 2022-08-03 18:30:18 * @LastEditors: LetMeFly * @LastEditTime: 2022-08-03 18:33:03 */
#include <bits/stdc++.h>
using namespace std;
#define mem(a) memset(a, 0, sizeof(a))
#define dbg(x) cout << #x << " = " << x << endl
#define fi(i, l, r) for (int i = l; i < r; i++)
#define cd(a) scanf("%d", &a)
typedef long long ll;
int main() {
int n;
double get = 0, notget = 1 - get;
cin >> n;
for (int i = 0; i < n; i++) {
get += notget * 0.006;
notget = 1 - get;
}
printf("%.6lf%\n", get * 100);
return 0;
}
正确代码
/* * @Author: LetMeFly * @Date: 2022-08-04 09:43:00 * @LastEditors: LetMeFly * @LastEditTime: 2022-08-04 09:43:02 */
#include <bits/stdc++.h>
using namespace std;
#define mem(a) memset(a, 0, sizeof(a))
#define dbg(x) cout << #x << " = " << x << endl
#define fi(i, l, r) for (int i = l; i < r; i++)
#define cd(a) scanf("%d", &a)
typedef long long ll;
int main() {
int n;
double get = 0, notget = 1 - get;
cin >> n;
for (int i = 0; i < n; i++) {
get += notget * 0.006;
notget = 1 - get;
}
printf("%.6lf%\n", n == 90 ? double(1) : get * 100);
return 0;
}
方法二
其实也可以不用这么麻烦,直接枚举每一次不中奖的概率,代码更简短
n n n次都不中的概率是 ( 1 − 0.006 ) n (1-0.006)^n (1−0.006)n,因此答案为 1 − ( 1 − 0.006 ) n 1 - (1 - 0.006) ^ n 1−(1−0.006)n
int n;
cin >> n;
printf("%.6lf%\n", n == 90 ? double(1) : 1 - pow(1 - 0.006, n));
虽然代码可以复制,但最好还是自己理解后再敲哦
原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/126153308
边栏推荐
- 备战9月,美团50道软件测试经典面试题及答案汇总
- 手把手教你搭建一个Minecraft 服务器
- 测试开发必备技能-Jmeter二次开发
- SAP 电商云 Spartacus UI SSR 里 engine 和 engine instance 的区别
- [TA-Frost Wolf_may-"Hundred Talents Project"] Art 2.7 Metallic and Speculer Process
- NFT blind box mining system dapp development NFT chain game construction
- Visual Studio 2022创建项目没有CUDA模板的解决方法
- 招募 | 香港理工大学Georg Kranz 博士诚招博士
- 博云入选Gartner中国云原生领域代表性厂商
- 云存储硬核技术内幕——(8) 只缘身在此山中
猜你喜欢

Minecraft 我的世界 .minecraft下的各个文件夹的用处

花 30 美金请 AI 画家弄了个 logo,网友:画得非常好,下次别画了!

开源一夏 | 请你谈谈网站是如何进行访问的?【web领域面试题】

湖北移动中兴B860AV2.1_S905L_线刷固件包

《分布式云最佳实践》分论坛,8月11日深圳见

可视化大屏丑?这篇文章教你如何做美观大屏!

seaborn

[TA-Frost Wolf_may-"Hundred Talents Project"] Art 2.7 Metallic and Speculer Process

线上一次JVM FullGC搞得整晚都没睡,彻底崩溃

电气成套设备行业如何借助ERP系统,解决企业管理难题?
随机推荐
LeetCode·85.最大矩形·单调栈
SAP 电商云 Spartacus UI SSR 里 engine 和 engine instance 的区别
开源一夏 | 请你谈谈网站是如何进行访问的?【web领域面试题】
Analysis of the gourd baby
移动魔百盒CM201-1_CW_S905L2_MT7668_线刷固件包
张乐:研发效能的黄金三角及需求与敏捷协作领域的实践
\/ PN的综合实验
智慧场馆的功能有哪些
生产环境重大bug,update加上索引字段会走索引进行更新?还是走全表扫描
CSDN21天学习挑战赛——程序流程控制(02)
饿了么智能头盔专利获授权 进一步提升骑手安全保障
把boot和APP一起烧录进MCU
Analysis of Http-Sumggling Cache Vulnerability
Hubei Mobile HG680-LV_S905L3B_wire brush firmware package
Hubei Telecom Tianyi TY1608_S905L3B_MT7668_ card brush firmware package
移动CM101s_MV100_EMMC_M8233_强刷后全分区线刷固件包
华为应用市场“图章链接”功能上线 让APP分发突破机型壁垒
JVM调优-GC基本原理和调优关键分析
张乐:研发效能的黄金三角及需求与敏捷协作领域的实践|直播回顾
No server is required, teach you to get real-time health code recognition with only 30 lines of code