美文网首页码农
使用javascript计算100头随机公母牛,三年后生小牛,n

使用javascript计算100头随机公母牛,三年后生小牛,n

作者: 潜水的旱鸭子 | 来源:发表于2019-08-18 01:59 被阅读0次

题干:

某农产购买了100头牛,有公有母,但是不确定公牛和母牛的数量(每头牛的性别50%随机概率),购进之后第一年起,母牛每三年会生一只小牛(小牛也不确定公母),如果是小母牛,那么每隔三年,也开始生小牛。20年后,农场共有多少只牛?(假定母牛没有任何生理和心理问题,也不考虑寿命问题)

分析:

  1. 初始100头牛的性别和年龄
  2. 母牛三年后生小牛
  3. 小牛的公母
  4. 20年

代码:

class Cattle{
    constructor(options){
        this.year = options.year; // 指定年数
        this.num = options.num;   // 初始牛数量
        this.sum = this.num;      // 初始总数
        this.cattle = [];         // 所有牛,[{age:1,sex:1}]
        this.getCattle();         // 买进100头牛,年龄为1,性别随机
        this.time();              // 时间流逝
    }
    getCattle(){    // 买进牛
        for(var i=0;i<this.num;i++){
            this.cattle.push({
                age:1,
                sex:this.getSex()
            })
        }
    }
    getSex(){      // 50%几率随机性别:0母,1公
        return Math.random()>=0.5 ? 0 : 1;
    }
    birth(){       // 生小牛
        var generation = 0;   // 当前牛是第几代
        this._num = 0;        // 统计有多少牛,要生了
        this.cattle.forEach((item)=>{
            // 判断年龄,计算有多少牛要生了
            if(item.age%3 == 0 && item.sex == 0){
                this._num++
            }
        })
        // 统一出生
        for(var i=0;i<this._num;i++){
            this.cattle.push({
                age:1,
                sex:this.getSex(),
                generation:++generation
            })
        }
    }
    time(){        // 时间流逝
        for(var i=0;i<this.year;i++){
            // 每过一年,年龄增加1,初始为1
            // 2年之后,年龄为3,开始出生
            var le = this.cattle.length;
            for(var j=0;j<le;j++){
                this.cattle[j].age++;
            }
            // 年龄增加之后,准备出生
            this.birth();
        }
        // 得到总数量
        this.sum = this.cattle.length;
    }
}
         
var c = new Cattle({
    num:100,    // 初始牛数量
    year:20     // n年之后
})

console.log(c.sum);    // 20年后牛的数量

end...


程序如有问题,或有更优化方案,欢迎留言指出,谢谢支持……^ _ ^

相关文章

  • 使用javascript计算100头随机公母牛,三年后生小牛,n

    题干: 某农产购买了100头牛,有公有母,但是不确定公牛和母牛的数量(每头牛的性别50%随机概率),购进之后第一年...

  • RSA算法解析

    基本步骤 随机选择两个大素数p和q,保密. 计算欧拉函数&n=(p-1)*(q-1) 计算n=p*q (n是公钥...

  • 母爱

    父亲养的母牛生娃了,一只八十多斤重的小母牛。 小牛生下后,母牛就死了,胎盘还在肚子里没下来,母牛用尽力气才把小牛崽...

  • 牛僵尸

    江宁铜井村有个农民养了一头母牛,十多年来,母牛生了二十八口小牛,农民靠着这头母牛,生活得到很大的改善。 母牛老了,...

  • 第五周第五天

    javascript 计算N个月前的日期(YYYY-MM-DD) 标签: javascript 日期 date 做...

  • 系统抽样和随机抽样样本量的计算

    随机抽样样本量计算 当抽样比f=n/N≤0.05时,总体为无限总体,样本单元数常采用简单随机抽样,样本数量计算公式...

  • java.lang.IllegalArgumentExcepti

    这是因为使用了java中的随机数所致,Random().nextInt(n)表示为0~n之间的随机数,但是不等于n...

  • JavaScript基本用法

    JavaScript对大小写是敏感的 JavaScript弹窗:弹窗使用反斜杠+"n"(\n)来设置换行 Java...

  • 阿牛

    我是一个大山里的孩子,家里有一头母牛,在我小的时候母牛产下了一头小牛,这头小牛一生下来就像很有劲似的,不一会就能跑...

  • [Math] RSA算法

    (1)公钥: (2)私钥: (3)使用公钥(e,n)加密m (4)使用私钥(d,n)解密c 例如:

网友评论

    本文标题:使用javascript计算100头随机公母牛,三年后生小牛,n

    本文链接:https://www.haomeiwen.com/subject/wevlsctx.html