记一次奇怪的面试

面试官出了一道思考题,问怎么由1-6的随机数生成器生成一个1-9的随机数生成器。

我说,先两两组合,有36种可能性,再分六堆。第一次选堆,第二次选堆中一对,第三次选一对中一个。

面试官说不对,可以两次,然后辩论了很久,说第三次不用再random。😂大家觉得两次可以吗。

后面发现原题是,用骰子9个人中选一对。


面试官出了一道算法题,判断二叉排序树。

我一开始是中序遍历,然后排序二叉数组,比较是不是一样。

后面说可以优化,我说遍历的时候只用和前一个比较。面试官说,有case过不去。我现在复盘一想,这不就是冒泡排序的思想吗,这这,哪里出问题了呀,也许是有更优解吧。再百度了一下确实只用当前遍历到的值和前一个就好了,好像没有更优和bug啊。

面试官全程「嗯哼?还有吗?真的嘛?」这态度是不是有点问题啊😁。

面试官说还算优秀,然后反手把我挂了嘿嘿😁,可能是八股没答好吧。

手机码字,可能排版不太好看,见谅。#2022春招##春招##面经##面试流程##字节跳动#
全部评论
利用rand6产生rand9,首先要从rand6得到一种范围更大的均匀分布(比如rand6+rand6可以得到2-12之间的数,但是不是均匀分布的,所以不随机),所以通过(rand6-1)*6+rand6 可以得到1-36的均匀分布,下一步就是缩小范围。思考如何得到1-9的数,可以通过mod9+1得到(对于这道题而言就已经结束,但是对于这一类型的题可能还要修正一下范围,使得取模后为均匀分布)
3 回复 分享
发布于 2022-04-24 10:13
拒绝采样 参考力扣470
1 回复 分享
发布于 2022-04-24 17:31
第一题是个高频题,也有通解,先拒绝采样生成 0,1 随机器,然后通过组合生成目标范围的二进制就行了
点赞 回复 分享
发布于 2022-04-24 14:18

相关推荐

dachang盒子:26届秋招必须有实习经历,建议找个实习过度下,同时项目重复率也比较高没有什么难点亮点,我这里有大厂真实的项目可以提供给你学习也可以给你包装大厂实习来提高你的竞争力,感兴趣的话可以私信我或者点我主页简介
你已经投递多少份简历了
点赞 评论 收藏
分享
给🐭🐭个面试机会...:我擦seed✌🏻
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务