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

网站建设神器深圳信息公司做关键词

网站建设神器,深圳信息公司做关键词,wordpress给文章增加标签,三栏 wordpressLeetCode-470. 用 Rand7 实现 Rand10【数学 拒绝采样 概率与统计 随机化】 题目描述:解题思路一:首先说一个结论就是(rand_X() - 1) Y rand_Y() > [1,X*Y],即可以等概率的生成[1, X * Y]范围的随机数,其实就像军训的时候报数…

LeetCode-470. 用 Rand7 实现 Rand10【数学 拒绝采样 概率与统计 随机化】

  • 题目描述:
  • 解题思路一:首先说一个结论就是`(rand_X() - 1) × Y + rand_Y() ==> [1,X*Y]`,即可以等概率的生成[1, X * Y]范围的随机数,其实就像军训的时候报数,Y是每一行的人数,X是列数【参考下面的图】。第二就是拒绝采样,效果是能够减少调用rand7()的调用次数。我们在利用`(rand_7() - 1) × 7 + rand_7() ==> [1,7*7]`得到rand49()的时候,我们希望能够等概率的生成[1,10]的随机数,那么可以拒绝掉大于40的数。即`if num<=40:`才进行采样。
  • 解题思路二:0
  • 解题思路三:0

题目描述:

给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数,试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。

你只能调用 rand7() 且不能调用其他方法。请不要使用系统的 Math.random() 方法。

每个测试用例将有一个内部参数 n,即你实现的函数 rand10() 在测试时将被调用的次数。请注意,这不是传递给 rand10() 的参数。

示例 1:
输入: 1
输出: [2]

示例 2:
输入: 2
输出: [2,8]

示例 3:
输入: 3
输出: [3,8,10]

提示:
1 <= n <= 105

进阶:
rand7()调用次数的 期望值 是多少 ?
你能否尽量少调用 rand7() ?

解题思路一:首先说一个结论就是(rand_X() - 1) × Y + rand_Y() ==> [1,X*Y],即可以等概率的生成[1, X * Y]范围的随机数,其实就像军训的时候报数,Y是每一行的人数,X是列数【参考下面的图】。第二就是拒绝采样,效果是能够减少调用rand7()的调用次数。我们在利用(rand_7() - 1) × 7 + rand_7() ==> [1,7*7]得到rand49()的时候,我们希望能够等概率的生成[1,10]的随机数,那么可以拒绝掉大于40的数。即if num<=40:才进行采样。

请添加图片描述
为了充分利用被拒绝的采样结果,即舍弃掉[41, 49]这9个数。我们可以使用a = num - 40得到rand9,从而可以得到(rand_9() - 1) × 7 + rand_7() ==> [1,9*7]得到rand63,从而对rand63进行采样。这样之后的就不难理解了。

# The rand7() API is already defined for you.
# def rand7():
# @return a random integer in the range 1 to 7class Solution:def rand10(self):""":rtype: int"""while True:a = rand7()b = rand7()num = (a-1)*7 + b # rand49if num<=40:return num%10 + 1a = num - 40 # rand9b = rand7()num = (a-1)*7 + b # rand63if num<=60:return num%10 + 1a = num - 60 # rand3b = rand7()num = (a-1)*7 + b # rand21if num<=20:return num%10 + 1

时间复杂度:期望时间复杂度为O(1),但最坏情况下会达到 (∞)(一直被拒绝)。
空间复杂度:O(1)
分析一下rand7()调用次数的 期望值:
首先调用2次得到a,b
然后拒绝采样一次概率是9/49
第二次是9/49 * 3/63
第三次是9/49 * 3/63 * 1/21就是进入下一轮while循环了。所以是一个等比数列。
a = 2 + 9 49 + 9 49 ⋅ 3 63 / / 是每次采样成功的概率 b = 9 49 ⋅ 3 63 ⋅ 1 21 / / 是每次进入下一轮循环的概率(等比数列的公比) E ( # c a l l ) = a ⋅ 1 1 − b ≈ 2.19333 \begin{align} a &= 2 + \frac{9}{49}+\frac{9}{49}·\frac{3}{63} \quad // \text{是每次采样成功的概率} \notag \\ b &= \frac{9}{49}·\frac{3}{63}·\frac{1}{21} \quad // \text {是每次进入下一轮循环的概率(等比数列的公比)} \notag \\ E(\#call) &= a·\frac{1}{1-b} \notag \\ &\approx 2.19333 \end{align} abE(#call)=2+499+499633//是每次采样成功的概率=499633211//是每次进入下一轮循环的概率(等比数列的公比)=a1b12.19333
所以期望次数是2.19332

解题思路二:0


解题思路三:0


http://www.hkea.cn/news/234456/

相关文章:

  • 中国工程建设招标网官方网站谷歌查询关键词的工具叫什么
  • wordpress管理员密码忘记成都seo招聘
  • 武汉企业建站系统模板下载官方正版百度
  • 上海做网站国际财经新闻
  • 用废旧盒子做家用物品网站seo排名工具
  • 企业铭做网站域名解析在线查询
  • 怎么注册自己的小程序网站优化分析
  • 荆州网站建设流程网站设计培训
  • 网站支付怎么做的seo职业技能培训班
  • 做csgo直播网站上海知名网站制作公司
  • 深圳住建局官方网站seo网站关键词优化快速官网
  • 网站建设需要php吗企业的互联网推广
  • 苏中建设集团官方网站电商软文广告经典案例
  • 网站开发需要什么开发工具代做百度首页排名价格
  • 北京网站设计多少钱微信引流推广
  • 网站建设实施背景分析百度指数里的资讯指数是什么
  • 小程序定制开发深圳公司网站的优化seo
  • 构建一个网站域名查询平台
  • 蚌埠网站关键词优化推广下载
  • 看房地产的app在哪看aso安卓优化
  • 网站与域名的区别扬州整站seo
  • 哪些网站可以进行域名注册公司关键词seo
  • 如何申请一个网站 做视频百度小说搜索热度排行榜
  • 天津做网站选择津坤科技b重庆seo教程搜索引擎优化
  • 什么网站做热能表好百度一下电脑版首页网址
  • 点击图片直接进入网站怎么做如何使用免费b站推广网站
  • 手机网站建设软件怎么在百度上做广告推广
  • 南京做网站团队手机app免费制作平台
  • 17173游戏网搜索优化指的是什么
  • 公司做网站需要给百度交钱吗百度竞价推广方案