概率与决策 - 模拟程序让你在选择中取胜

news/2025/10/3 15:20:35/文章来源:https://www.cnblogs.com/wenbochang/p/19124638

前言

在人生中我们会处处面临抉择,是选择A还是选择B呢。选对了可能皆大欢喜,选错了可能就是一个重要的转折点。
在刷知乎的过程中,经常会有类似的问题。看似荒诞的背后,却蕴藏着无限的哲学。

  1. 《每毫秒给你1个亿,代价是你每秒被动触发一次1亿分之一的死亡率,你愿意吗?》
  2. 《“100%概率获得200万”和“99%概率获得2个亿”,你选哪个?》

作为程序员,看着这种概率与决策,有时候常在想,我怎么做决策我的胜率概率最大,能不能用程序来模拟一下。我选择A赢的概率,我选择B赢的概率呢?

当然,必定是可以的,程序天然非常容易处理这些大数据,循环等问题,话不多说,直接看效果吧。

1

2

3

  • 体验地址
  • github源码地址

死亡概率模拟器

核心算法采用了“几何分布逆变换采样”

  • O(1)时间复杂度,相比传统蒙特卡洛方法性能提升显著
  • 数学准确性:基于几何分布的期望值 E[X] = 1/p
  • 边界保护:处理 log(0) 等数学异常
calculateDeathTime() {const p = this.selectedProbability.value;const u = Math.random();const u_safe = Math.max(u, 1e-10); // 避免log(0)// 几何分布公式:X = ceil(log(U) / log(1-p))const deathTime = Math.ceil(Math.log(u_safe) / Math.log(1 - p));return Math.max(1, deathTime);
}

风险抉择抽奖

采用了预计算 + 进度动画分离。

  • 计算与渲染分离:避免10000次抽奖时的性能问题
  • 固定时长体验:无论多少次抽奖,用户等待时间可控
  • 平滑进度显示:50ms更新间隔保证流畅动画
async startLottery() {// 步骤1:预先快速计算所有结果(无延迟)for (let i = 0; i < this.selectedTimes; i++) {const result = this.performSingleLottery();this.results.push(result);}// 步骤2:根据次数设置固定动画时长let animationDuration = 0;if (this.selectedTimes === 1) animationDuration = 0;      // 立即else if (this.selectedTimes === 10) animationDuration = 500;    // 0.5selse if (this.selectedTimes === 100) animationDuration = 1000;   // 1selse if (this.selectedTimes === 1000) animationDuration = 1500;  // 1.5selse if (this.selectedTimes === 10000) animationDuration = 2000; // 2s// 步骤3:播放进度动画(仅更新显示)const updateInterval = 50; // 每50ms更新一次const totalSteps = animationDuration / updateInterval;for (let step = 1; step <= totalSteps; step++) {this.currentRound = Math.floor((step / totalSteps) * this.selectedTimes);await this.sleep(updateInterval);}
}

同时采用了真随机模拟 Math.random() 模拟概率,大数定律验证,次数越多越接近理论值

performSingleLottery() {const random = Math.random(); // [0, 1)if (random < 0.99) {return { win: true, amount: 200000000 }; // 99%概率:2亿} else {return { win: false, amount: 0 };         // 1%概率:0元}
}

最后

其实最后发觉,概率学到最后就是数学期望,一个人选择可能是随机,但100人、1w人、10w人选择就是必然的概率了。

一个人选择失败对整体影响有限,但对于他自身而言,可能是灾难性的,这也就是一个人在就是整个时代的一粒沙尘,对整个时代影响微乎其微。

但通过代码的计算我们也可以看出,一个人微乎其微,但如果你在你的前面加一个权重,那可能就不一样了,所以大家行动起来吧,让自己变得更强,那样,在选择中,你取胜的概率就会更大了,谢谢大家。

  • 体验地址
  • github源码地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

题解:qoj6504 Flowers Land 2

人类智慧题。 题意:给出一个由 \(0,1,2\) 组成的字符串,每次给出一个区间,使 \(a_i\leftarrow (a_i+1)\mod 3\) 或者询问区间能否通过删除相邻两项使得整个串被删除。 做法: 首先注意到每次一定删除一个奇数位置的…

Prophet

Prophet模型深度解析:从设计理念到数学原理 Prophet是Meta(原Facebook)为商业场景时间序列预测开发的工具,核心设计目标是解决传统时序模型(如ARIMA、SARIMA)的痛点——对非平稳数据鲁棒性差、需手动处理趋势/季…

详细介绍:Jenkins:持续集成和持续交付(CI/CD)工具

详细介绍:Jenkins:持续集成和持续交付(CI/CD)工具pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

详细介绍:范式革命:RDMA 如何让网络成为 “分布式内存总线”

详细介绍:范式革命:RDMA 如何让网络成为 “分布式内存总线”2025-10-03 15:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !impor…

专业做家具的网站有哪些鹤峰网站制作

ArkTS语言入门 在学习ArkTS语言之前&#xff0c;我们首先需要一个能够编译并运行该语言的工具 DevEco Studio。 了解ArkTS ArkTS是OpenHarmony优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继…

大型活动临时组网的技术解析:如何构建高效稳定的通信网络

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

安徽省建设厅网站张天培16岁的做兼职在什么网站好

一、下载、编译 redis是以源码方式发行的&#xff0c;先下载源码&#xff0c;然后在linux下编译 1.1 http://www.redis.io/download 先到这里下载Stable稳定版&#xff0c;目前最新版本是2.8.17 1.2 上传到linux&#xff0c;然后运行以下命令解压 tar xzf redis-2.8.17.tar.gz …

长沙网站设计公司推荐wordpress相关网站

在 webpack 中&#xff0c;专注于处理 webpack 在编译过程中的某个特定的任务的功能模块&#xff0c;可以称为插件。它和 loader 有以下区别&#xff1a; 1loader 是一个转换器&#xff0c;将 A 文件进行编译成 B 文件&#xff0c;比如&#xff1a;将 A.less 转换为 A.css&…

查网站排名wordpress 站群

在上一篇文章中&#xff0c;我们介绍了&#xff0c;对于安全技术开发者&#xff0c;如何快速的基于 Rosetta 等隐私 AI 框架所提供的一系列接口&#xff0c;将自己的安全协议集成落地到上层的 AI 应用中来。在这一篇文章中&#xff0c;我们将介绍为了保护用户的隐私数据&#x…

抚顺网站开发招聘wordpress更改主题

文章目录1. html 部分2. js部分3. 拦截器部分4. 认证授权部分5. 控制层部分6. 工具类实现流程: 1.从reqest域中获取现在登陆的新sessionId 2.根据登陆的用户名从reqest域中获取已经登陆的老sessionId 3.判断老sessionId是否存在和新旧sessionId是否是否一致 如果一直返回当前用…

和水导学习的第二篇笔记

操作系统 操作系统的作用 将外部指令传给CPU 操作系统有什么 计算机有什么组成: 应用程序:便利生活,具体干活,和操作系统,人交互 操作系统:接收外部指令,控制硬件,和人,硬件,应用程序交互 硬件:操作数据,和…

微信公众号推文添加附件方法,1分钟学会!支持word,excel,pdf等适合招聘,公告,申请表等

微信公众号图文文章时,总会遇到带有附件的文章,但微信公众号本身并不具备直接上传附件的功能,那编辑者们是如何快速在微信公众号中添加office、pdf和word等附件,以供用户快速预览或保存使用的呢?微信公众号图文文…

社保在哪个网站做增员网站建设兼职挣多少钱

01.dns解析过程02.用户访问网站流程03.局域网电脑上网流程04.网站架构图解转载于:https://blog.51cto.com/qinbin/1954149

bMIND包本地安装

https://github.com/randel/MIND 下载code,下载下来是MIND-master.zip,本地R安装要求严格是“MIND-master.tar.gz” 格式转化: # 如果机器上有 git: cd /public/home/chidm/Downloads git clone https://github.com…

百度电商MultiAgent视频生成系统 - 详解

百度电商MultiAgent视频生成系统 - 详解2025-10-03 14:56 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

网络实践——基于epoll_ET工作、Reactor设计模式的HTTP服务 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

为博客写遗言

写下这段文字的时候,内心是极挣扎的 可能是【数据删除】临近了,所以情感上的波动愈发强烈 不久后,就要和 cnblogs 说再见了,甚至是和电脑说再见了足足 249 篇博客,不舍、痛苦、伤感是难免的 博客快断更了,应当有…

2025国庆Day2

模拟赛 T1 简单题 离散化+差分即可 或者直接贪心 对可能成为答案的点计算删的区间并取min #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath>…

灵犀科技网站开发WordPress获取评论内容

5大安全产品全面升级&#xff0c;抢先了解&#xff1a;https://developer.aliyun.com/topic/securityapril 预约观看发布会&#xff1a;https://yq.aliyun.com/live/2670 新基建大势之下的物联网 近日&#xff0c;中央政治局常委会会议提出&#xff0c;加快发展5G、数据中心、…

新能源汽车整车电控环境详解!

新能源汽车整车电控环境详解!pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…