当前位置: 首页 > news >正文

建设银行遵义分行网站it菜鸡网seo

建设银行遵义分行网站,it菜鸡网seo,wordpress 过滤标签,wordpress站点使用期限插件目录 前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本 思考感悟写在最后 前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介…

目录

  • 前言
  • 问题介绍
  • 解决方案
  • 代码编写
    • java语言版本
    • c语言版本
    • c++语言版本
  • 思考感悟
  • 写在最后

前言

当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~

在此感谢左大神让我对算法有了新的感悟认识!

问题介绍

原问题
存在一个吐球的机器,该机器吐球的顺序是 : 1号球,2号球,3号球…m号球,一共吐m个求
现在你有一个袋子,大小是n,n<m,当m个球吐完之后,你的袋子中应该有n个球,那么现在设计一个算法保证袋子中的n个球每一个球进入袋子中的概率都是相等的,都是n/m

解决方案

原问题
解法很简单,证明在后面:
1、首先创建一个数组作为“袋子”,用来获取等概率的结果
2、循环将球放入袋子,在袋子装满之前,所有球都放入袋子
3、如果袋子满了,此时为第i个球,判断rand(i)是否大于n,如果小于袋子的大小,则随机找袋子中的某个位置覆盖,否则不放入
4、循环完成即可,此时袋子中每一个球放入的概率都是n/m

代码编写

java语言版本

原问题:
方法一:

/*** 二轮测试:蓄水池算法* @param k* @param max* @return*/public static int[] getKNumRandCp1(int k, int max) {int[] container = new int[k];// 初始化//for (int i = 0; i < max; i++) {//    container[i] = i + 1;//}for (int i = 0; i < max; i++) {if (i < k) {container[i] = i + 1;continue;}// 如果随机数没有超过k,则随机替换一个if (rand(i) <= k) {container[randCp1(k) - 1] = i;}}return container;}public static int randCp1(int num) {return (int)(Math.random() * num + 1);}public static void main(String[] args) {CommonUtils.printArr(getKNumRandCp1(5, 9));}

c语言版本

正在学习中

c++语言版本

正在学习中

思考感悟

如果不看证明我其实不知道为什么这样就一定是等概率的。
然后看了书里面的概率计算公式之后算是有些明白了:
首先我们看看第i号球如何才能被选中踢出去被n+1号球替换:
首先要满足两个条件:1、rand(n+1) < n 2、rand(n) = i
那么这两个事件的概率乘积就是i被k+1号球替换的概率:n/(n+1) * (1/n)
那么反过来,i球留下来的概率就是 1- 1/(n+1) = nn+1
同理可以计算出没有被n+2,n+3换出来的概率
n+2 : (n+1)/(n+2)
n+3 : (n+2)/(n+3)
ok,如果在每一轮的随机下,最终i球留下来没有被替换出去,那么就算是i球被选中了,所以接下来我们求n轮后i号球留下来的概率即可
也就是从n+1一直到m,所有没有被换出去的概率乘积
n/n+1 * (n+1)/(n+2) * (n+2)/(n+3) … (m-1)/m= n/ m

这个概率刚好是等概率替换的概率,完美的证明~

写在最后

方案和代码仅提供学习和思考使用,切勿随意滥用!如有错误和不合理的地方,务必批评指正~
如果需要git源码可邮件给2260755767@qq.com
再次感谢左大神对我算法的指点迷津!

http://www.mnyf.cn/news/43298.html

相关文章:

  • python个人网站开发sem专员
  • wordpress常用数组北京核心词优化市场
  • 怎么做自己的个人网站全国seo搜索排名优化公司
  • 一键生成文案的网站互联网营销成功案例
  • 校园网站制作长沙seo关键词排名优化
  • 三维建设项目管理网站百度小说风云榜排名
  • 做网络写手赚钱的网站海南百度竞价排名
  • 网站建设有哪些工作室seo搜索价格
  • 网站打开慢原因搜索引擎收录入口
  • 医疗类网站前置审批app推广策划方案
  • 英语机构网站建设方案十大网络推广公司
  • 网站后台上传图片 不可用seo查询工具有哪些
  • 建设建设网站的网站推广在线推广
  • 做违法网站程序员犯法吗公司网页设计模板
  • 专科最吃香的十大专业郑州seo公司排名
  • 成都做整站优化详情页设计
  • 网站的设计 改版 更新如何成为app推广代理
  • 企业级测试解决方案廊坊网站排名优化公司哪家好
  • 巢湖做网站域名状态查询工具
  • wordpress 多媒体管理优化大师安卓版
  • 企业网站建设排名十大互联网平台
  • 专门做办公的网站goole官网
  • 女生做网站编辑怎么样软文代写公司
  • 做网站赚钱的时代过去了吗品牌整合营销推广
  • 什么是网站app建设网络营销的三大基础
  • 如何查网站空间大小吉林刷关键词排名优化软件
  • 网站建设 需求电脑培训学校哪家好
  • 做房产网站长高级seo培训
  • 娄底网站建设广告营销策划
  • 网站首页设计费用百度手机助手苹果版