热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

算法——概率生成器

转自:http:blog.csdn.netfish1094articledetails6886235今天记录下和概率发生器有关的几个算法1.假设我有个{0,1}生成

转自:http://blog.csdn.net/fish1094/article/details/6886235


今天记录下和概率发生器有关的几个算法


1.假设我有个{0,1}生成器,生成0的概率为p,生成1的概率为q,如何通过此发生器获得一个均为1/2的{0,1}生成器呢?


【答】思路:寻找两个等概率事件。易知连续投掷两次获得01 or 10的概率均为p(1-q) =Y,因此如果我们连续生成两个数,如果获得00或者11概率为U=p^2+(1-p)^2,则继续再获取两个数,直到获取到10或者01为止。概率为(1+U+U^2+U^3+...)*Y 求极限为Y*(1/(1-U))=0.5


因此 我们得到了想要的。


2.假设我有一个随机数生成器范围为{1,2,3,4,5} 如何获得一个等概率的{0,1}生成器


【答】思路&#xff1a;同样采取上题的思路构造两个等概率事件&#xff1a;事件A: 不停生成数 直至生成的数A<3 事件B 不停生成数直至生成数A>3 同样可以证明这个两个事件发生概率都是0.5


3. 假设我有一个随机数生成器范围为{1,2,3,4,5} 如何获得一个{1-n}的等概率随机生成器


【答】思路&#xff1a;


&#xff08;1&#xff09;首先我们获得一个{0,1}等概率生成器


&#xff08;2&#xff09;我们获得一个XXX的随机二进制序列表示范围(0,1,2,...,2^k-1)。其中2^(K-1)<&#61;n<2^k


&#xff08;3&#xff09;定义n个事件 其中M事件为:如果XXX属于{n&#43;1,2^k-1}则再生成一个XXX的随机序列属于{0,1,2,..,n} 其中XXX&#61;M的概率为1/n
推荐阅读
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
author-avatar
彭彭宅男丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有