2023.1.15(日)上午人口老龄化研究小成果 ——育龄人口的减少与计划生育无关(建模证明)
2023.1.15(日)上午人口老龄化研究小成果
- get数据
- 计算育龄人口和育龄出生率
- 前言
- 定义
- 模型构建
- 代码实现
- .in 文件
- .out 文件
- 数据分析结论
get数据
在E上搜索1949-2021年中国历年出生人口、死亡人口、总人口、出生率、死亡率。
最终在 https://zhuanlan.zhihu.com/p/474340353 此网址获得了相关数据。与微信视频号东锦投研购买数据对比后吻合。
计算育龄人口和育龄出生率
前言
因为没找到数据只能构建模型用C++运算了
定义
育龄人口年龄: 20-35岁
育龄出生率:出生人口/育龄人口
模型构建
- 每年死亡人口平分至各个年龄段,如果某年龄段当年人口不够减,优先减至年龄大的人口数中。
- 1949年前的数据没有get到,所以用1949年总人口分成1-99岁(0岁以给出),死亡人口按1算
代码实现
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
double b[maxn],d[maxn],tot[maxn],cnt[maxn];
int main(){
freopen("bd.in","r",stdin);
freopen("bd.out","w",stdout);
//1949年前的数据处理
for(int i=1850;i<=1948;i++)cnt[i]=527.55375;
cnt[1949]=1939.1786;
double x=0;//育龄人口
for(int i=1949-35;i<=1949-20;i++)x+=cnt[i];
printf("1949 = %.5lf %.3lf %\n",x,1950.012*100.0/x);
//1950-2021的数据求
for(int i=1950;i<=2021;i++){
scanf("%lf%lf",&b[i],&d[i]);//出生和死亡人口
cnt[i]=b[i];
double c=0,u=0;//u指差多少
bool flag=false;
for(int j=1850;j<=i;j++){
//最老人口年龄枚举
if(cnt[j]>0&&!flag){
c=d[i]*1.0/(i-j+1);//平均每个年龄的死亡人数计算
flag=true;
}
//人口死亡人数减少
if(flag){
if(cnt[j]>=c+u){
cnt[j]=cnt[j]-c-u;
u=0;
}
else{
u=c+u-cnt[j];
cnt[j]=0;
}
}
}
//打印
x=0;
for(int j=i-35;j<=i-20;j++)x+=cnt[j];
printf("%d = %.5lf %.3lf %\n",i,x,b[i]*100.0/x);
}
return 0;
}
.in 文件
//1950-2021,第一个数表示当年出生人数,第二个数表示当年死亡人数
2042.252 993.528
2128.14 1002.14
2126.834 977.194
2175.452 823.144
2288.30002 794.30588
2003.759 754.7902
2004.2132 716.2392
2200.14159 698.2524
1928.34468 790.60812
1665.38946 980.55013
1381.07802 1683.64401
1194.02367 943.75947
2504.75712 678.34368
3015.8992 698.6372
2773.43066 814.96844
2756.444 689.111
2624.62382 661.18754
2605.67616 646.83696
2807.5905 647.9055
2762.98175 650.20826
2787.70128 634.05888
2619.93946 625.58086
2608.33584 666.90405
2504.15277 631.61388
2266.93205 670.53942
2137.6746 680.2112
1875.27717 683.19693
1807.35522 656.27034
1756.72675 601.61875
1738.19844 605.73582
1797.41805 625.7897
2092.50552 636.45792
2264.85112 670.9164
2079.73152 710.7552
2076.7043 711.71474
2227.10504 717.66978
2411.38201 737.49802
2549.969 734.496
2483.65162 737.21264
2432.15232 737.08416
2407.85298 762.60111
2279.39664 776.0141
2137.19904 778.01544
2143.97253 786.95288
2121.345 777.8265
2073.59152 795.76497
2078.16522 802.87184
2048.48282 804.80526
1951.26204 810.9465
1841.50704 812.57756
1778.20429 817.49235
1707.64926 820.64161
1651.90558 823.38373
1603.70707 827.0528
1597.55252 834.52296
1621.3744 851.22156
1589.20632 895.16088
1598.7609 915.65397
1612.21628 937.58212
1594.7275 944.826
1595.6829 953.38701
1790.33532 963.30024
1980.38354 969.12386
1781.53978 974.85638
1903.64418 980.03952
1658.52874 977.96482
1889.37824 980.19328
1769.73904 988.47766
1526.27526 995.03028
1467.89328 999.74672
1203.12624 998.36884
1062.2752 1014.2468
.out 文件
//第一个数表示年份,第二个数表示当年育龄人口,第三个数表示育龄出生率
1949 = 8440.86000 23.102 %
1950 = 8283.46943 24.655 %
1951 = 8126.27099 26.188 %
1952 = 7974.47387 26.671 %
1953 = 7847.83633 27.720 %
1954 = 7726.79924 29.615 %
1955 = 7612.86865 26.321 %
1956 = 7505.76746 26.702 %
1957 = 7402.32266 29.722 %
1958 = 7286.27009 26.465 %
1959 = 7143.64462 23.313 %
1960 = 6900.95719 20.013 %
1961 = 6766.13441 17.647 %
1962 = 6670.08575 37.552 %
1963 = 6572.03140 45.890 %
1964 = 6458.64449 42.941 %
1965 = 6363.59470 43.316 %
1966 = 6273.17589 41.839 %
1967 = 6185.46918 42.126 %
1968 = 6098.35584 46.038 %
1969 = 7423.28625 37.220 %
1970 = 8854.14201 31.485 %
1971 = 10382.52178 25.234 %
1972 = 11914.71209 21.892 %
1973 = 13510.26091 18.535 %
1974 = 15222.24211 14.892 %
1975 = 16656.70014 12.834 %
1976 = 18099.03699 10.361 %
1977 = 19748.03432 9.152 %
1978 = 21139.11446 8.310 %
1979 = 22274.55994 7.804 %
1980 = 23132.72784 7.770 %
1981 = 23818.29527 8.785 %
1982 = 25819.45724 8.772 %
1983 = 28333.60979 7.340 %
1984 = 30611.93711 6.784 %
1985 = 31468.65924 7.077 %
1986 = 32094.72898 7.513 %
1987 = 32612.74953 7.819 %
1988 = 33329.94714 7.452 %
1989 = 33950.49608 7.164 %
1990 = 34478.12197 6.984 %
1991 = 35119.30050 6.490 %
1992 = 35746.81578 5.979 %
1993 = 36072.55923 5.943 %
1994 = 36433.11731 5.823 %
1995 = 36924.10620 5.616 %
1996 = 37433.31322 5.552 %
1997 = 38052.24561 5.383 %
1998 = 37306.44125 5.230 %
1999 = 36030.03373 5.111 %
2000 = 35053.89870 5.073 %
2001 = 34387.76652 4.966 %
2002 = 34024.95899 4.855 %
2003 = 33495.55076 4.788 %
2004 = 32760.80671 4.876 %
2005 = 32219.73904 5.032 %
2006 = 31834.16559 4.992 %
2007 = 31753.58613 5.035 %
2008 = 31616.86419 5.099 %
2009 = 31532.57302 5.057 %
2010 = 31661.11051 5.040 %
2011 = 31790.09909 5.632 %
2012 = 32039.36593 6.181 %
2013 = 32363.41015 5.505 %
2014 = 32715.86696 5.819 %
2015 = 33040.57167 5.020 %
2016 = 33311.77235 5.672 %
2017 = 33258.65786 5.321 %
2018 = 32936.52988 4.634 %
2019 = 32690.27486 4.490 %
2020 = 32384.53653 3.715 %
2021 = 31857.05041 3.335 %
数据分析结论
网上经常有人说,计划生育导致育龄人口数的减少,从而导致出生率 -> 育龄出生率的降低。计划生育是1982年正式施行,但2021年在模型内运算的育龄人口数远高于1982年,育龄出生率却远低于1982年的8.772%.
综上可推出,网上的说法是错的,从而计划生育并不导致育龄人口数的减少。