- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建 hive 模拟,并使用名为 workerBee 的二维数组。它有以下 6 个字段:beeId、Age、Type(egg = 1、larva = 2、pupa = 3、worker = 4、drone = 5)、PollenCollection、Eaten、Alive
模型简介:蜂王每天产卵(10 到 50 个卵),并将它们添加到 hive 中。每天,有关蜜蜂的数据都会更新(它们的年龄和类型)。
对于过去的每一天,我都会打印 hive 状态,其中打印有关蜜蜂数量、出生、死亡等的信息。在模拟过程中的某些日子(开始时,例如第 6 至 10 天),报告的幼虫数量为 1 天约 800 至 900 只。以下是处理打印和计数的代码:
public static int layDailyEggs() {
Random randomEggs = new Random();
final int MAX_EGGS = 50;
final int MIN_EGGS = 10;
int x = randomEggs.nextInt((MAX_EGGS - MIN_EGGS) + 1) + MIN_EGGS;
eggsLaid = x;//eggsLaid as a global variable to be used in printBeehiveStatus
return x;//To pass as argument to addEggToHive
}
public static void addEggToHive(int eggsLaid) {
//Update the workerBee array with available slots
//Traverse the 2D array and while beeId != 0, add eggs and update
for (int i = 0; i < workerBee.length; i++) {
if (workerBee[i][0] == 0 && eggsLaid > 0) {
//Available space
workerBee[i][0] = i;//Update beeID
workerBee[i][1] = 1;//Update age
workerBee[i][2] = 1;//Update Type
eggsLaid--;
}
}
}
public static void countTypesOfBees() {
//Initialize for each day
totalEggsLaid = 0;
numberOfBirths = 0;
numberOfLarva = 0;
numberOfPupa = 0;
numberOfWorkerBees = 0;
numberOfDrones = 0;
//To call upon updating type of each bee
for (int i = 0; i < workerBee.length; i++) {
if(workerBee[i][2] == 1) {
totalEggsLaid++;
}else if(workerBee[i][2] == 2) {
numberOfLarva++;
numberOfBirths++;
}else if(workerBee[i][2] == 3) {
numberOfPupa++;
numberOfBirths++;
}else if(workerBee[i][2] == 4) {
numberOfWorkerBees++;
numberOfBirths++;
}else if(workerBee[i][2] == 5) {
numberOfDrones++;
numberOfBirths++;
}
}
}
//Method called once daily
public static void metamorphose() {
numberOfDeaths = 0;
Random random = new Random();
for (int i = 0; i < workerBee.length; i++) {
//Updating the type of bee based on age of Bee
if(workerBee[i][1] == 4) {
workerBee[i][2] = 2;
}else if (workerBee[i][1] == 10) {
workerBee[i][2] = 3;
}else if(workerBee[i][1] == 20){
//Probability for a drone to emerge is 10%(As per area under curve, should be less than or equal to 10%)
double probability = random.nextDouble();
if (probability <= 0.1) {
workerBee[i][2] = 5;//Drone Bee
}else{
workerBee[i][2] = 4;//Worker Bee
}
}
if (workerBee[i][1] == 35 || workerBee[i][1] == 56) {
//Call a funeral
funeral(i);
numberOfDeaths++;
}
}
countTypesOfBees();
}
//To be called at the end of the day
public static void printBeehiveStatus() {
System.out.print("Queen laid " + eggsLaid + " eggs!" +
"\nBeehive status\nEgg Count: "+ totalEggsLaid + "\nLarva Count: " + numberOfLarva + "\nPupa Count: " + numberOfPupa +
"\nWorker Count: "+ numberOfWorkerBees + "\nDrone Count: " + numberOfDrones +
"\nDeath Count: " + numberOfDeaths + "\nBirth Count: "+ numberOfBirths +
"\nHoney Stock: " + honeyStock +"\n");
printFlowerGarden();
}
workerBee数组的字段索引按照上面指定的顺序排列。每天执行的顺序如下(注意不是完整的)
addEggToHive(layDailyEggs());
incrementAge();
metamorphose();
printBeehiveStatus();
屏幕截图[1]:/image/qTeuo.png
截图[2]:/image/eMsHq.png
注意
卵在4天大时孵化成幼虫如果您认为还有其他可能导致问题的原因,请告诉我,我将上传该部分代码。
最佳答案
找到了解决方案。实际上,incrementAge() 方法应该每天将 hive 中所有蜜蜂的年龄增加 1。然而,我只是简单地增加数组中的所有年龄,而不检查该特定行是否是实际的蜜蜂,因为我已将未使用的行初始化为0
关于java - hive 模拟 : A counter of a type of bee returns unusually high numbers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59234595/
我正在尝试使用两个线程的代码,一个线程递增共享长变量,另一个线程递减 var。 class Shared { private long a; public void incr() {
我正在使用 Linux 并尝试与信号处理相关的代码。我正在尝试以下代码,但我无法理解此代码的行为。 /**Globally declared variable**/ time_t start,
对于一个涉及从光谱数据计算键长的项目,我使用 Solve[] 来求解一个相当简单的未知方程。当我更改输入时,我开始注意到“异常”行为。具体来说,当我更改一个数字并解决时,结果就是之前的答案。然而,再次
请帮我找到这个“段错误:11”。 argv 输入看起来不错。顺便说一句,这是一个就餐哲学家问题。它在一小时前工作,但在 minix 机器上,但现在在 Unix 机器上它无法运行。请帮我解决这个愚蠢的错
场景:我向服务器请求零件。它给了我这个(它是伪造的,但代表了我正在看的东西): { PartNumber : "XYZ", Description: "ABCFOO", ProductClass: "
这是摘自“JavaScript,权威指南”中有关 arguments 对象的核心 JavaScript 引用的一段话: In non-strict mode, the Arguments object
程序的输出是这样的: 虽然内容正确 (目前仅在尝试解密产生错误结果时) 但是为什么会出现这个错误? udit@udit-Dabba /opt/lampp/htdocs $ ./a.out Error
我有一个购物 list 应用程序,我正计划将 Core Data 与它一起使用。 我有一个杂货店 Item 抽象类,它具有三个子类:RecipeItem、QuickAddItem 和 HybridIt
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: What does the ',' operator do in C? 好吧,我今天接受了采访,他们问我下面
我有一个简单的“用户”集合,现在我只有 2 个文档。 { "_id": ObjectId("4ef8e1e41d41c87069000074"), "email_id": {
在行:std::ifstream fileOpen(file.c_str()); 在下面的函数中程序崩溃并给我这个错误: This application has requested the Runt
我有一个未排序的数组,包含 10,000 个从 0 到 9,999 的整数。我想对这个未排序的数组应用合并排序,我编写了以下代码- import sys def merge_sort(data):
当我关闭 Qt 程序 (g++ 4.4.0) 时,出现 Microsoft Visual C++ Runtime Library 错误“此应用程序已请求运行时以异常方式终止它”。但是当我在调试器中运行
我正在使用 Instagram API 开发自己的安卓应用。在我家的 Wi-Fi 上,一切都很好。它已经过 100 多次测试。今天我尝试通过我公司的公司 Wi-Fi 将我的 Sandbox 客户端连接
我有一个5张谷歌电子表格和一个应用程序脚本项目,简而言之就是这样做的:。当我为x调用它时,它成功地返回了正确的数组。不幸的是,对于y和z,它都在前15个元素之后停止。是否有解决此问题的方法?这一切为什
我发现自己负责继续开发一个不是我最初设计的系统,并且不能问最初的设计师为什么要做出某些设计决定,因为他们已经不在了。我是一个设计问题的初级开发人员,所以当我开始这个项目时我真的不知道该问什么,这是我的
我的 Meson项目我有一个位于“不寻常”位置的依赖项: /opt/MyDependence/lib/libmyLib.so /opt/MyDependence/include/myLib.hpp 我
我有这个 Pandas DataFrame,有两列 label 和 time >>> df = pd.DataFrame([{'a':{'tier':'one','app':'frontend'},'
“Scheme 编程语言第 4 版” 第 3.3 节 Continuations给出了以下示例: (define product (lambda (ls) (call/cc (
我有一个 C++ 程序,它在进程启动后立即给出此错误 - 显然是在任何用户代码执行之前。它仅在启用内联时发生。即使内置了调试符号,我也无法进入代码。当我在 Visual Studio 中按下 F10
我是一名优秀的程序员,十分优秀!