2012-2-25面试题目
来源:互联网 发布:炒股软件使用书籍 编辑:程序博客网 时间:2024/06/06 01:08
1.五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;.....其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?
解:
参考答案:先给这堆桃子加上4个,设此时共有X个桃子,最后剩下a个桃子.这样: 第一只猴子分完后还剩:(1-1/5)X=(4/5)X; 第二只猴子分完后还剩:(1-1/5)2X; 第三只猴子分完后还剩:(1-1/5)3X; 第四只猴子分完后还剩:(1-1/5)4X; 第五只猴子分完后还剩:(1-1/5)5X=(1024/3125)X; 得:a=(1024/3125)X; 要使a为整数,X最小取3125. 减去加上的4个,所以,这堆桃子最少有3121个。
2.已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。
(这题主要考的是对概率的理解。程序关键是要算出rand10,1到10,十个数字出现的考虑都为10%.)
根据排列组合,连续算两次rand7出现的组合数是7*7=49,这49种组合每一种出现考虑是相同的。怎么从49平均概率的转换为1到10呢?方法是:1.rand7执行两次,出来的数为a1.a2.2.如果a1*7+a2<40,b=(a1*7+a2)/10+1,如果a1*7*a2>=40,重复第一步)。参考代码如下所示:int rand7() { return rand()%7+1; } int rand10() { int a71,a72,a10; do { a71= rand7()-1; a72 = rand7()-1; a10 = a71 *7 + a72; } while (a10>= 40); return (a71*7+a72)/4+1; }
- 2012-2-25面试题目
- Java面试题目(2)
- 面试题目2
- 常见面试题目2
- 一道面试题目2
- C#面试题目2
- C面试题目2
- 面试题目2
- 面试题目积累2
- .net面试题目2
- 数据库面试题目2
- 笔试面试题目2
- 面试题目记录2
- android面试题目2
- 面试题目总结2
- 中国人民银行面试题目(经典题目2)
- 百度面试题目(2012实习生面试)
- 2012亲身的面试题目
- WEB应用之: JS this 指针+作用域链+原型链
- 印度人英语
- Android Binder设计与实现
- CentOS6.2系统上部署Xen4.1.2虚拟机
- 静态绑定和动态绑定
- 2012-2-25面试题目
- CVE-2012-0158 MSCOMCTL控件漏洞分析
- java之List排序
- 编译时多态和运行时多态
- 编程爱好者网站试题中心
- 开发规范、命名规范
- 黑马程序员--SQL基础
- x264编译
- 学习笔记之文件与I/O