某国家的家庭都喜欢生男孩,而且一个家庭直到生有男孩为止,否则继续生小孩,
该国当前的男女均衡,问若干年后该国家的男女比例的趋势?
据说这是一道阿里云的笔试题,看到很多网友的意见是1:1,本人也试着做一下。
有网友说,数学基础不好,就不要纠结于算法了,深以为然。既然数学不好,那就按需求写代码吧,代码也写不好?那就去当领导吧。
就这道题目来说,可以先考察特殊情况。
一对夫妻在三年后的情况
一共有四种
第一种: 第一年生男孩 男孩的比例为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/2
既然每对夫妻子女中男孩比例的期望值都大于1/2,那么国家必然是男孩多的局面。
下面用代码验证
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次试验吧
* 看看5年后男孩的人口比例到底有多少
*/
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);
}
}
分享到:
相关推荐
低反应出一个地区的工业化、城镇化或城市化水平。在中国大陆,“城镇人口”自1990 年代前后在统计学领域渐渐使用较多的用语,以代替之前非农业人口。在统计上,城镇人口 为在城镇居住时间超过6个月以上的人口。
- **老龄化加速**:随着平均寿命的延长和生育率的下降,老年人口比例不断上升。 - **出生人口性别比升高**:传统观念导致男孩偏好现象严重,从而使得出生人口的性别比失衡。 - **城镇化进程加快**:大量的农村人口向...
1. 请你(们)选择或提出若干人口关键指标,例如14岁以下人口占总人口比例,60岁以上人口占总人口比例,一对夫妇平均生育孩子数量,1980-2017全国小学生数量,全国人口平均年龄(核算每种指标社会正常运行的最低值、...
老龄化已经成为全球一个迫在眉睫的重大问题,国内外都对此问题进行了深入研究并积极寻找相应的对策。 二、重庆市人口老龄化现状 根据中国第六次人口普查的结果,到2010年,中国31个省市自治区中,有26个地区的老年...
在中国这个人口大国,人口问题对国家的可持续发展具有深远影响。本文主要探讨了如何通过数学建模方法对中国人口增长进行预测,以及模型在中短期和长期预测中的应用。 1. **Malthus 微分方程**:Malthus模型是一种...
在文档提供的部分数据中,我们可以看到人口数据以每十年为一个阶段,统计了1790年至1990年的人口数量。从这些数据可以看出人口数量随着时间的增长趋势。同时,文档中也列出了不同年份的人口增长率以及环境承载量的...
在代码段中,我们可以看到一个循环用于绘制从1996年到2015年每年的男女人口和乡镇人口比例。`add_subplot()`函数创建了子图,`figsize`参数设定了图表的大小。通过循环,每20年中有20个子图,其中前10个展示男女人口...
对于丁克现象,可以特别关注那些达到生育年龄但选择不生育的个体比例,以及这种趋势如何影响未来的人口老龄化问题。 在实际应用中,这些模型可以帮助政策制定者预测未来人口发展趋势,以便于制定相应的社会政策和...
年轻人口的比重反映了一个地区的活力和发展潜力,中年人口则决定了经济活动的活跃度,老年人口比例则预示着未来的养老负担。 通过《第六次人口普查全国各街道人口数据EXCEL》这份资料,我们可以进行多维度的区域...
标题中的“1960-2019年世界各国人口数据”揭示了这是一个关于全球各国在长达近六十年间的人口统计分析。这些数据涵盖了重要的经济和社会指标,包括人均GDP(国内生产总值)、人口密度以及城镇人口的数量和比例。这些...
在当前的社会背景下,人口性别比例失衡是一个全球性问题,尤其是在中国,由于历史文化和政策因素,这一问题尤为突出。福建作为中国的一个省份,其人口性别比例失衡的问题同样值得关注。 论文可能首先会介绍人口性别...
人口问题是当今世界面临的重要议题之一,它不仅关乎资源分配、环境保护,还涉及到社会经济发展等多个方面。为了更好地理解和解决这些问题,数学建模作为一种强有力的工具被广泛应用。本文将详细介绍几种常见的人口...
例如,描述中的"二孩政策"是为了应对人口结构不合理,尤其是儿童和老年人口比例失衡而实施的政策。此政策旨在通过提高生育率来改善人口年龄结构,促进人口均衡发展。 【人口分布与人口合理容量】人口分布是指人口在...
这份压缩包文件“第七次人口普查.zip”包含了对这次普查的详细数据,主要文件为“第七次人口普查.xlsx”,里面涵盖了各省份的人口数量、占比、性别比例以及城镇人口比例等关键信息。 首先,人口总数是衡量一个国家...
"世界各国人口数据.zip"这个压缩包文件为我们提供了一个宝贵的资源,让我们有机会深入探究全球各国家和地区的人口现状。这份资料包含的文件名为“各国人口”,预计将涵盖全球各个国家和地区的最新人口统计数据。 ...
- **老年人口比例预测**:同时预测了50岁以上老年人口占总人口比例的变化趋势。 #### 四、模型的优缺点分析 - **优点**: - 结合了多个关键因素(如净迁出率、性别比、生育率和死亡率)进行全面预测。 - 使用了...
13. **人口普查的意义**:人口普查为国家政策制定提供依据,如图所示,人口普查数据可以揭示人口年龄结构变化,例如婴幼儿人口比例下降可能反映出生育政策的效应,老年人口比例上升则表明老龄化问题日益严重。...
衡量人口老龄化的指标包括程度指标(如老年人口比重、人口年龄中位数和老少比)、速度指标(老年人口比例的年平均增长率等)和社会经济影响指标(如少儿人口抚养比、老年人口抚养比和总人口抚养比)。 【中国人口...
这里引入了一个新的变量\(\Delta P\),它表示的是除了自然增长率之外的其他因素对人口变化的影响,比如迁入迁出比例、性别比等。 #### 模型建立过程 1. **假设条件**:设定初始人口数量为\(x_0\),在时刻\(t\)的...