论坛首页 Java企业应用论坛

最新的阿里云面试题(java无线)

浏览 25887 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2011-10-14  
和楼主一个专业  也最恨被问到有关数学的知识
0 请登录后投票
   发表时间:2011-10-14  
凤凰山 写道
jsltool 写道
为什么大家都在讨论第一题?是因为第一题没法直接写出代码?
第一题是一道证明题,答案是男女比例依然均衡。证明如下。
①假定生孩子是每年一次(否则无法定量);②生男孩女孩的概率相同;③不考虑多胞胎的情况;④社会上的男女比例一开始就是1:1
第一年:出生50%的男孩和50%的女孩,男女比例不变,因为增加的一样多
第二年:之前生女孩的家庭要继续生,于是在去年生50%的女孩的家庭中,生出了25%的男孩和25%的女孩,现在男女比例依然不变
第二年:之前生了两个女孩的家庭要继续生,于是在去年生25%的女孩的家庭中,生出了12.5%的男孩和12.5%的女孩,现在男女比例依然不变
……………………
可以看到,虽然每年都有人生孩子,但是每年新出生孩子的男女比例总是相同的,所以最终社会中的男女比例一直是1:1。
我个人认为前提①比较重要,算是核心条件。



哎,程序题要翻API,悲催
0 请登录后投票
   发表时间:2011-10-14  
zhoulm177 写道
刚编了个程序验证一下第一题,发现结果是平衡的。呵呵,办法比较笨,但比较直观。

import java.util.Random;


public class Test {

/**
* @param args
*/
public static void main(String[] args) {
Random r=new Random();
int t=0;//生男生女标记
int nan=0;//男孩数
int nv=0;//女孩数

for(int i=0;i<100000;i++){//i是家庭数
do{
t=r.nextInt(2);
if(t==0){
nv++;//t=0表示是女孩
}else{
nan++;//t=1表示是男孩
}
}while(t==0);//t=0生女孩后继续再生
}
System.out.print("女孩个数:"+nv);
System.out.print("男孩个数:"+nan);
System.out.print("女孩与男孩数比值:"+nv/(float)nan);
}

}



第一题比较简单,答案就是 1:1,但是也是一个很诱导人思路的一个题,主要是“一个家庭直到生有男孩为止,否则继续生小孩”,大家如果是计算机相关专业的就不要按照你的思路去分析了,直接动动手去证明一下,如果有时间请考虑其他题吧,像这位哥们一样拿出点能说服人的东西来,我是搞Java的,所以引用了这位哥们的话,你如果是学数学的,前边也有相关的极限证明,都没有问题。

另:额有一JAVA技术交流Q_Q群 81753923 (验证Java),希望从事Java的同胞们加入,本群禁止闲聊于Java无关的东西,如果你管不住自己闲聊请不要加入,谢谢!
0 请登录后投票
   发表时间:2011-10-14  
y13872888163 写道
sweat89 写道
楼主是应届生?

嗯 是的 校园招聘 对工作几年的说这应该不难

我只能说 对工作几年的可能更难
0 请登录后投票
   发表时间:2011-10-14  
噜噜潘 写道
和楼主一个专业  也最恨被问到有关数学的知识

确实  一听你是数学专业的就觉得你很牛 数学很强一样 其实我数学很差的
0 请登录后投票
   发表时间:2011-10-15   最后修改:2011-10-15
关于第一题 我的结论是男孩比例偏大
具体分析在这里 http://bill600.iteye.com/blog/1197367

给一个代码验证
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/*
* 社会类
* 一个社会由多个夫妻组成
* 这个社会只关心人口比例(悲剧)
*/
public class Socity {
private List<Couple> list;//夫妻
private int m;//男孩总数
private int f;//女孩总数

public Socity(int n){
//初始化社会,指定这个社会有多少夫妻
this.list=new ArrayList<Couple>();
for(int i=0;i<n;i++){
list.add(new Couple());
}
}

/**
* 计算下n年后男孩的比例
*
*
*/

public float getRateOfGender(int n){
int males=0;
int famales=0;
for(int i=0;i<this.list.size();i++){
list.get(i).born(n);
males+=list.get(i).getmN();
famales+=list.get(i).getfN();
}
m=males;
f=famales;

return (float)males/(famales+males);
}

/**
* 夫妻类,这些夫妻只会生孩子(再次悲剧),他们的子女就别生了吧
*
*
*/

class Couple{
private int mN;//男孩数量
private int fN;//女孩数量

/**
*
* n年了,光生孩子了
*/
void born(int n){
int tempM=0;
int tempF=0;
Random random=new Random();
boolean stop=false;
for(int i=0;i<n;i++){
if(stop){
break;
}
if(random.nextInt(2)==1){
tempM++;
stop=true;//总算生到男孩了,可以不用生了
}else{
tempF++;
}
}
mN=tempM;
fN=tempF;
}

public int getmN() {
return mN;
}

public int getfN() {
return fN;
}
}

public List<Couple> getList() {
return list;
}

public int getM() {
return m;
}

public int getF() {
return f;
}

/**
* 做个试验吧
* 据说社会学是不能做实验的,虚拟世界里,人也成了小白鼠
* 就用10000对夫妻做100次试验吧
* 看看10年后男孩的人口比例到底有多少
*/

public static void main(String[] args){
Socity socity=new Socity(10000);
float sum=0;
float average=0;
for(int i=0;i<100;i++){
System.out.println("第"+(i+1)+"次试验");
float rate=socity.getRateOfGender(10);
System.out.println("男性比例为"+rate+" 男性 "+socity.getM()+ " 女性"+socity.getF());
sum+=rate;
System.out.println();
System.out.println();
}
average=sum/100;
System.out.println("100次试验中男性平均比例"+average);
}

}
0 请登录后投票
   发表时间:2011-10-17  
2^3=?
bill600 写道
分析一下第一题

一对夫妻在第三年的男孩比例

一共有四种情况

第一种: 第一年生男孩  男孩的比例为1    出现的概率为1/2

第二种: 第二年生男孩  男孩的比例为1/2  出现的概率为1/4

第三种: 第三年生男孩  男孩的比例为1/3  出现的概率为1/8

第四种: 三年都是女孩  男孩的比例为0    出现的概率为1/8

则第三年男孩比例的期望值为 1*(1/2)+(1/2)*(1/4)+(1/3)*(1/8)+0*(1/8)

推广到一般情况在n年的男孩比例为:Σ(1/i)*2^(i+1)

因此 男孩的比例还是偏高的

0 请登录后投票
   发表时间:2011-10-17  
OpenMind 写道
2^3=?
bill600 写道
分析一下第一题

一对夫妻在第三年的男孩比例

一共有四种情况

第一种: 第一年生男孩  男孩的比例为1    出现的概率为1/2

第二种: 第二年生男孩  男孩的比例为1/2  出现的概率为1/4

第三种: 第三年生男孩  男孩的比例为1/3  出现的概率为1/8

第四种: 三年都是女孩  男孩的比例为0    出现的概率为1/8

则第三年男孩比例的期望值为 1*(1/2)+(1/2)*(1/4)+(1/3)*(1/8)+0*(1/8)

推广到一般情况在n年的男孩比例为:Σ(1/i)*2^(i+1)

因此 男孩的比例还是偏高的


推广到一般情况的式子写错了,我改过来了 ,谢谢指正
0 请登录后投票
   发表时间:2011-10-17  
y13872888163 写道

  1.某国家的家庭都喜欢生男孩,而且一个家庭直到生有男孩为止,否则继续生小孩,
该国当前的男女均衡,问若干年后该国家的男女比例的趋势?

 

 

如果一个家庭生出了女孩,他们会继续生,就相当于这个国家多了一个家庭,而一个家庭生出男孩或者女孩的概率是50%,所以不影响男女比例。若干年后应该还是均衡的。

0 请登录后投票
   发表时间:2011-10-17  
ansjsun 写道
这种题要让我去面试我肯定能过哈..最后那个题..把文件解析做成插件的形式...
用同一种接口...来实现哈哈


你第一题那么简单都答错了,肯定会被刷掉的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics