2012年腾讯、创新工场、淘宝面试算法题精选

需积分: 3 9 下载量 85 浏览量 更新于2024-09-17 收藏 586KB PDF 举报
"这篇资源是一篇关于2012年9月腾讯、创新工场、淘宝等知名公司面试题目的汇总,旨在为求职者提供最新的面试准备材料。这些题目涵盖算法、逻辑推理等方面,适合准备IT行业面试的人员参考。作者鼓励大家共同讨论和解答这些问题,提升自己的技能。" 面试题解析: 1. 第一题是关于数学逻辑的问题,涉及猴子分桃。五只猴子依次将桃子分成五等份,每次都会多出一个桃子,然后吃掉一个并拿走一堆。通过设立未知数X,可以推导出桃子的最小数量。首先,每只猴子分完后,桃子的数量会以(1-1/5)^n的形式递减,其中n表示猴子的序号。最终,当第五只猴子分完后,桃子的数量应为(1024/3125)X,为了保证最后是整数,X的最小值为3125,因此桃子至少有3121个。 2. 第二题是编程题,要求利用rand7()函数生成1到7的随机数,来构造一个rand10()函数,生成1到10的随机数。解题的关键在于理解概率分布,通过连续两次调用rand7(),可以得到49种可能的组合,将这些组合映射到1到10的范围内。具体实现时,如果两次结果的乘积小于40,则直接除以10并加1得到结果;否则,重复执行rand7()直到满足条件。提供的参考代码实现了这一逻辑。 这些题目展示了IT面试中常见的问题类型,包括基础算法、逻辑推理以及概率统计。对于应聘者来说,不仅需要扎实的编程能力,还需要具备灵活的思维和对概率论的理解。在准备面试时,类似的练习可以帮助求职者熟悉公司可能会问到的问题,并提高问题解决能力。