go语言模拟出生性别结构

看过好多文章,说现在的人口不平衡是重男轻女思想导致的;也看到过不少文章讨论了很多有关性别不平衡的让人深思的话题.作为非常非常爱小朋友的我,想并仅想从数学方面模拟一下这个话题.

前提假设: 假设一对适育父母辈,其生育后代的性别受到其有意识的筛选.

如果第1个后代是雄性, 停止生育.

如果第1个后代雌性,继续生育,如果第2个后代是雄性,停止生育.

如果第1到第n个孩子都是雌性,继续生育,如果第n+1个后代是雄性停止生育.


go代码第一步,实现随机函数(生雄生雌是随机的,各一半一半)

pakckage main

import(

"math/rand"

"fmt"

"time"

)

func init(){

rand.Seed( time.Now().Unix() )

}

func main() {

var sexes = [2]string{ "male","female"}

var children []string

for {

child := sexes[ rand.Intn( len( sexes ) ) ] //生育1个后代

children = append( children, child ) //添加到后代群

if child == "male" {

break //如果是雄性,则停止生育后代

}

}

fmt.Println( children)

}

打印了许多次,结果符合预期.

go语言模拟出生性别结构

然后我们把生育基数num放大,假设为1万,10万,百万,千万,亿.其比例函数

func RateOfSexes( num int ) {

var sexes =[2]string { "male", "female" }

var sumOfMale, sumOfChildren float64

//遍历num个适龄父母辈

for i := 0; i < num; i++ {

child := sexes[ rand.Intn( len( sexes ) )] //第i对适育父母辈生育1个后代

sumOfChildren += 1 //整个社会后代群增加1

if child == "male" {

sumOfMale += 1 //如果是雄性,则雄性后代群增加1

break //中断,遍历到下一对适育父母

}

}

fmt.Println(100*sumOfMale/ sumOfChildren ) // 打印雄性比例.

}

然后我们取基本数为1万到1亿时,其运行结果发现:基数越大,越接近百分之50.

go语言模拟出生性别结构

结果显示:如果每个后代都得到疼爱,珍惜,抚养.即使人为有意识的筛选,满足其至少生育一个雄性后代的意向.自然生育的结果,雄性比例依然是50%.

那么!目前巨大的性别差异,背后是多么的沉重和令人深思.

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章