在参与MBTI测评前,请确认你已完成埃珂森管培生AI面试 区块链毕设网qklbishe.com为您提供问题的解答 在参与MBTI测评前,请确认你已完成埃珂森管培生AI面试 从业7年-专注一级市场 微信:btc9767 TELEGRAM :https://t.me/btcok9 具体资料介绍 web3的一级市场千万收益的逻辑 进群点我qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在参与MBTI测评前,请确认你已完成埃珂森管培生AI面试
8ftbysy3q97k5dxsby 【编程题】 # 背景: “康威生命游戏”由一个二维的平面网格组成。网格内的每个格子都是一个细胞,包括“存活”和“死亡”两种状态。每个细胞的生存状态由周围最多8个邻居的状态决定。详细规则如下: * 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少) * 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。 * 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态。(模拟生命数量过多) * 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖) # 任务: * 实现函数:`private int getNextVal(int[][] arr, int i, int j)`,返回某个元素的生存状态。 * 实现函数:`private int countLivingNeighbors(int[][] arr, int i, int j)`,计算某细胞的存活邻居数量。 初始代码: public class ShowMeBug { public final int[][] arr; public ShowMeBug(int[][] arr) { this.arr = arr; } public static void main(String[] args) { int[][] arr = new int[][]{ {0, 0, 0}, {1, 1, 1}, {0, 0, 0} }; final ShowMeBug showMeBug = new ShowMeBug(arr); showMeBug.updateNextState(arr); showMeBug.printState(); } /** * 输出当前生存状态到控制台 * */ public void printState() { int M = arr.length; int N = arr[0].length; for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { System.out.print(arr[i][j]); System.out.print(“” “”); } System.out.println(); } } /** * 更新arr下个tick的生存状态 * * @param arr 当前状态下的数组 */ public void updateNextState(int[][] arr) { int M = arr.length; int N = arr[0].length; for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { arr[i][j] = getNextVal(arr, i, j); } } } /** * 计算某细胞下个tick的状态 * * @param arr 当前状态下的数组 * @param i 行索引 * @param j 列索引 * @return 生存返回1,否则返回0 */ private int getNextVal(int[][] arr, int i, int j) { int nextVal = 0; //TODO:请完善该函数,要求:需要调用countLivingNeighbors return nextVal; } /** * 计算某细胞的存活邻居数量 * * @param arr 当前状态下的数组 * @param i 行索引 * @param j 列索引 * @return 该元素存活的邻居数量 */ private int countLivingNeighbors(int[][] arr, int i, int j) { int count = 0; //TODO:请完善该函数 return count; } } 区块链毕设网qklbishe.com为您提供问题的解答 【编程题】 # 背景: “康...