中国最好的域名注册网站五站合一网站建设
一) 一孩半,又称独女户二胎,即中国大陆部分农村的一项计划生育政策,第一胎是女孩的夫妻可生育第二个子女。试问这个政策会不会影响男女平衡。
二)如果生女孩一直生,直到生男孩停止,试问会不会影响男女平衡。
三)如果第二胎有5%的人工性别选择干预一定要生男孩,试问这个政策会不会影响男女平衡。
if(rand()%100<5) //每次调用rand()就是一次孩子,100个人有5个人一定要生男孩,另95个,随机生。
四)如果只有x%的家庭选择二胎(且二胎人工干预选择性别),试问这个政策会不会影响男女平衡。
五)如果不考虑一孩半政策,只执行独生子女政策,有5%的人工性别选择干预,试问独生子女政策会不会影响男女平衡。
一)代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int i;float girl = 0, boy = 0;         //假定一开始没有婴儿,男女孩都为0srand((unsigned)time(NULL));      //随机种子for (i = 1; i <= 100000; i++)      //假定有100000对夫妻生孩子,数目越大结果越精确{if ((rand() % 2 + 0) == 1)boy++;      //随机生成0和1,(rand()%(n-m+1)+m)生成[m,n]的随机数else if ((rand() % 2 + 0) == 0)       //0代表女孩,1代表男孩,出现0则继续生二胎{girl++;if ((rand() % 2 + 0) == 1)boy++;      //二胎也随机男女else girl++;}}float proportion = boy / girl;cout << proportion << endl;if (proportion == 1)cout << "不影响男女平衡";else if (proportion > 1)cout << "男女失衡,呈现男多女少";else cout << "男女失衡,呈现男少女多";return 0;
} 
二)代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int i;float girl = 0, boy = 0;         //假定一开始没有婴儿,男女孩都为0srand((unsigned)time(NULL));      //随机种子for (i = 1; i <= 100000; i++)      //假定有100000对夫妻生孩子,数目越大结果越精确{if ((rand() % 2 + 0) == 1)boy++;     //生了男孩else                                 //生了女孩,则要继续生{while (1)                    //死循环,如果生了女孩则继续生,生了男孩则可以结束循环{girl++;if ((rand() % 2 + 0) == 1)    //如果条件不成立,即生了女孩,返回循环,girl++,再继续生{boy++; break;}}}}float proportion = boy / girl;cout << "男女比例:"<<proportion << endl;return 0;
} 
三)代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int i, n = 0;float girl = 0, boy = 0;         //假定一开始没有婴儿,男女孩都为0srand((unsigned)time(NULL));      //随机种子for (i = 1; i <= 100000; i++)      //假定有100000对夫妻生孩子,数目越大结果越精确{if ((rand() % 2 + 0) == 1)boy++;     //生了男孩else                                 //生了女孩,则要继续生{girl++;n++;                           //n表示多少夫妻生二胎}}for (i = 1; i <= n; i++){if (i <= n * 0.05)        //5%的人工干预,即需要生二胎的家庭中5%的家庭一定生男孩{boy++;                    //这些家庭一定生男孩}else                          //5%的人工干预之后的其他家庭随机生{if ((rand() % 2 + 0) == 1)boy++;else girl++;}}float proportion = boy / girl;cout << "男女比例:" << proportion << endl;return 0;
} 
四)代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int i,n=0;float girl = 0, boy = 0;         //假定一开始没有婴儿,男女孩都为0srand((unsigned)time(NULL));      //随机种子int x;cin >> x;for (i = 1; i <= 100000; i++)      //假定有100000对夫妻生孩子,数目越大结果越精确{if ((rand() % 2 + 0) == 1)boy++;     //生了男孩else{girl++;n++;                      //要生二胎的人数}}for (i = 1; i <= n; i++){if (i <= n * x * 0.01)boy++;       //只有x%的夫妻选择生二胎,且都干预生了男孩}float proportion = boy / girl;cout << "男女比例:"<<proportion << endl;return 0;
} 
五)代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int i, n = 0;float girl = 0, boy = 0;         //假定一开始没有婴儿,男女孩都为0srand((unsigned)time(NULL));      //随机种子for (i = 1; i <= 100000; i++)      //假定有100000对夫妻生孩子,数目越大结果越精确{if (i <= 100000 * 0.05)boy++;     //5%的家庭生男孩,剩下的家庭随机生else{if ((rand() % 2 + 0) == 1)boy++;else girl++;}}float proportion = boy / girl;cout << "男女比例:" << proportion << endl;return 0;
} 
个人理解是这样的。
