查看: 2059|回复: 5
收起左侧

Google : Make a 5 number generator from a 3 number generator

|只看干货 |刷题
头像被屏蔽

分享帖子到朋友圈
wwwyhx | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

上一篇:Microsoft : Find pivot
下一篇:face book : Divide a list of numbers into group of consecutive numbers
darksteel 2011-5-8 12:04:38 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (32)
 
 
0% (0)    👎
回复 1# wwwyhx
见过类似的,大概是这么个意思:
rand5():
  do
    ret = 3*(rand3()-1) + rand3()-1
  while ret < 1 || ret > 5
  return ret;
先均匀的生成0-8随机数,然后取出其中需要的部分。这样能保证返回的五个数是等概率的
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-5-10 12:52:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-5-10 12:55:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

darksteel 2011-5-10 13:08:39 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (32)
 
 
0% (0)    👎
回复 4# wwwyhx
没有,两个rand3()生成的随机数可能不同的,不能直接提取公因式
回复

使用道具 举报

darksteel 2011-5-10 13:10:27 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (32)
 
 
0% (0)    👎
本帖最后由 darksteel 于 2011-5-10 13:39 编辑

回复 3# wwwyhx
这个方法return 2, 4的语句岂非没机会执行?是不是判断条件应该改成(x==3&&y==1)和(x==1&&y==3)?
其实这些方法都大同小异,都是通过rand3()随机生成9个数,然后取其中5个返回,否则重试。要想减少重试次数,需要改变方法本质才行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

>
快速回复 返回顶部 返回列表