「java繁殖」繁育和繁殖

博主:adminadmin 2022-12-15 19:30:07 66

本篇文章给大家谈谈java繁殖,以及繁育和繁殖对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何用Java程序编程,最好讲解一下。题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对

这道题目考察的是运用递归(数列)的思路去解决问题。

假设到第24个月,示例代码如下:

public class woo {

public static void main(String args[]) {

System.out.println(fib(24));

}

private static int fib(int n) {

if (n == 1 || n == 2) {

return 1;

} else {

return fib(n - 1) + fib(n - 2);

}

}

}

扩展资料:

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……。

在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

参考资料:

百度百科:斐波那契数列

百度百科:递归函数

一道有点麻烦的Java繁殖问题求解

输入部分需要的话你改成Scanner就行了,注释比较详细,有什么问题可以问我,望采纳!

import java.util.ArrayList;

public class Solution {

 

static ArrayListSheep sheep_list = new ArrayListSheep(); //存放所有羊的信息

static int embryo_days, new_born_days, rest_days; //怀孕天数,成长天数,产后再怀孕天数

static double[][] rate = new double[2][3]; // {{头胎生一只的概率,生两只的概率,生三只的概率},

// {次胎开始生一只的概率,生两只的概率,生三只的概率}} 

int K = 0; //天数

public Solution() {

/* 初始化 */

embryo_days = 10;

new_born_days = 20;

rest_days = 5;

rate[0][0] = 0.2;

rate[0][1] = 0.6;

rate[0][2] = 0.2;

rate[1][0] = 0.1;

rate[1][1] = 0.5;

rate[1][2] = 0.4;

K = 400;

/* 从两只刚出生的羊开始,一公一母 */

Sheep f_sheep = new Sheep(true);

Sheep m_sheep = new Sheep(false);

f_sheep.age = 0;

m_sheep.age = 0;

sheep_list.add(f_sheep);

sheep_list.add(m_sheep);

/* 循环每天羊的变化 */

for(int i = 0; i = K; i++) {

int male = 0, female = 0, embryo = 0;

for(int j = 0; j  sheep_list.size(); j++) {

Sheep t = sheep_list.get(j);

if(t.age  0)

embryo++;

else if(t.sex)

female++;

else

male++;

/* 改变状态 */

t.status_change();

}

System.out.printf("%d天后: 母羊有%d只,公羊有%d只,胎羊有%d只。\n", i, female, male, embryo);

}

}

public static void main(String[] argv){

new Solution();

}

}

/** 羊共有4种状态  */

enum Status {

embryo, //胎羊

new_born, //小羊

pregnant, //成熟后怀孕中

rest //产后休息

}

/**

 * 羊的对象类

 * 记录这只羊的性别,年龄,状态等信息

 */

class Sheep {

boolean sex; //性别

int age; //年龄:单位天,新生为0,胎羊为负

int isFirstPregnant; //是否是首次怀孕

Status status; //状态

/** 

 * 构造

 */

public Sheep(boolean sex) {

this.sex = sex;

this.age = -Solution.embryo_days; //默认胎羊刚形成的时候

this.isFirstPregnant = 0; //首次怀孕

this.status = Status.embryo; //状态为胎羊

}

/**

 * 每过一天,改变一次状态

 */

public void status_change() {

switch (status) {

case embryo :

/* 怀孕天数到了,小羊出生 */

if(age == 0)

status = Status.new_born;

break;

case new_born :

/* 过了成长期,如果是母羊,就怀孕 */

if(sex  age == Solution.new_born_days) {

status = Status.pregnant;

Pregnant();

isFirstPregnant = 1;

}

break;

case pregnant :

/* 过了怀孕天数,进入产后休息期 */

if(sex  age == Solution.embryo_days + Solution.new_born_days) 

status = Status.rest;

break;

case rest :

/* 休息天数后,再次怀孕 */

if(sex  age == Solution.embryo_days + Solution.new_born_days + Solution.rest_days) {

status = Status.pregnant;

Pregnant();

}

default:

break;

}

/* 年龄增加(单位为天) */

age++;

}

private void Pregnant() {

double rate = Math.random();

int num = 0;

/* 根据概率生成怀胎的数量 */

if(rate  Solution.rate[isFirstPregnant][0])

num = 1;

else if(rate  Solution.rate[isFirstPregnant][0] + Solution.rate[isFirstPregnant][1])

num = 2;

else if(rate  Solution.rate[isFirstPregnant][0] + Solution.rate[isFirstPregnant][1]

   + Solution.rate[isFirstPregnant][1])

num = 3;

/* 新增num个胎羊 */

for(int i = 0; i  num; i++)

Solution.sheep_list.add(New_Sheep());

}

/**

 * 新增一个胎羊

 */

private Sheep New_Sheep() {

/* 随机性别 */

boolean s = Math.random()  0.5;

return new Sheep(s);

}

}

JAVA中如何解决母牛繁殖问题?

int Cow( int n ) {

int cow1 = 2, cow2 = 3, cow3 = 4, cow = 0;

if (n 1) return 0;

if (n 4) return n + 1;

for(int i=4; i=n; i++) {

cow = cow3 + cow1;

cow1 = cow2;

cow2 = cow3;

cow3 = cow;

}

return cow;

}

java中的超类是什么?和父类是一个意思吗?

我建议以后你用英文术语。真的,方便自己

举个例子。。。咱中国有个食物叫 麻辣烫, 但是外国人不像咱中国人分的这么细,麻、辣、烫3中味道都是hot。。。

所以麻辣烫就是 hot hot hot..你可以查查

Super Class 跟这个一样,有的译为超类,有的译为父类。。。。。等

怎么办呢,所以你以后交流直接就用 Super Class  就好了

给你推荐个纯净学 习 ..君羊. .吧 ,无/广//告//的 101990481

全是计算机的学生或者,已经工作的人。。

急急急!!!!!java编写兔子繁殖

斐波那契数列,即1,1,2,3,5,8.... 对兔子 a[n]=a[n-1]+a[n-2]

即第n个月的兔子数是前两个月的和

由于寿命10月,从第11月开始考虑,第11月死了一月那一对兔子,同时第一月的兔子在第11月由于死了无法生出新兔子,相当于从rabbit(11)里减去2*rabbit(1),对应第12月相当于少了reduce_rabbit(11)外加第一月的兔子由于死亡没能在12生出的一对,即2*2+2=6只, 第11到第16月对应无死亡情况减少的数量,单位是只, 2*2 3*2 6*2 10*2 17*2 28*2,可以发现规律是a[n]=a[n-1]+2*rabbit[n-2]+rabbit(n-1)

//无死亡情况兔子数

int rabbit(int n){

if(n==1||n==2)

return 2;

return (rabbit(n-1)+rabbit(n-2));

}

//有死亡情况,第n月相对于无死亡减少的兔子数

int reduce_rabbit(int n){

if(n==11)

return 2*2;

if(n==12)

return 2*2+2;

return (reduce_rabbit(n-1)+2*rabbit(n-2)+rabbit(n-1));

}

//main

public static void main(String[] args){

int result=rabbit(20)-reuduce_rabbit(20);

System.out.print(result);

}

代码没去跑,不过思路大概是这样

java:某细菌在培养过程中每隔30分钟分裂一次(一变二)经过24小时后原来10个可以繁衍成多少?

wzxrj521 朋友,如果你没有足够的java程序经验,还是踏踏实实的写代码吧,不要直接在回答框里直接打代码,贴上来的程序还有不少一眼就能看出的低级错误。。

关于楼主的问题,其实大家都写出算式了,也不必写程序了吧

public class Division {

public static void main(String[] args) {

long bacteria = 10 * (long) Math.pow(2, 2 * 24);

System.out.println("Bacteria after 24h: " + bacteria);

}

}

当然,为了需要扩展性,该程序还是改进很多

关于java繁殖和繁育和繁殖的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。