- 浏览: 275304 次
文章分类
最新评论
-
羽风之扬:
crazydayu 写道您好,我在启动的时候也遇到了这种错误, ...
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio -
羽风之扬:
我的也[是这用错误,改过后没效果。这是我的截图,麻烦帮我看下吧 ...
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio -
hamizhong:
...
Linux和Python脚本自动部署应用一例(2) -
crazydayu:
您好,我在启动的时候也遇到了这种错误,但是加上127.0.0. ...
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio -
lg327969713:
wx_hello 写道你好,请教下,这个链接要配置ODBC数据 ...
Java连接FoxPro6.0数据库(测试)
今天突然想起以前同事提到过的一个过河问题,游戏设计思路
需要使用程序代码体现其过程,心血来潮,来一把.....如下:
三个僧侣和三个食人族过河
目的:需要把他们六个一起使用一条船送到河的对面岸上
条件:当食人族的数目超出僧侣的数目时,就会出现食人族吃人的想象(是不允许的)
每条船最多能坐下两个(僧侣或者食人族),每次船启动时必须有一个在船上。
思路:必须先将所有的食人族过河,再利用食人族将所有的僧侣送过河,最后将食人族再送过河。
模拟僧侣的攻击力为4(总攻击力为12),食人族攻击力为3(总攻击力为9),
当每边食人族的攻击力和超出僧侣的攻击力和的时候就发生事故,
必须控制僧侣攻击力和超出食人族攻击力和的值。
结果:最短应该是小于等于11次往返次数
执行环境(WinXP+java version "1.5.0_06")
/** *created by zxb *date 2010-4-5 - 上午10:05:38 *zxb 开源测试项目 test *to do TODO **/ package com.java.algorism; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Random; /** * 三个僧侣和三个食人族过河 * 目的:需要把他们六个一起使用一条船送到河的对面岸上 * 条件:当食人族的数目超出僧侣的数目时,就会出现食人族吃人的想象(是不允许的) * 每条船最多能坐下两个(僧侣或者食人族),每次船启动时必须有一个在船上。 * 思路:必须先将所有的食人族过河,再利用食人族将所有的僧侣送过河,最后将食人族再送过河。 * 模拟僧侣的攻击力为4(总攻击力为12),食人族攻击力为3(总攻击力为9), * 当每边食人族的攻击力和超出僧侣的攻击力和的时候就发生事故, * 必须控制僧侣攻击力和超出食人族攻击力和的值。 * 结果:最短应该是小于等于11次往返次数 */ public class CrossRiver { private static final List<Integer> list=new ArrayList<Integer>(); /** * @param args */ public static void main(String[] args) { Senglv sl1=new Senglv(); Senglv sl2=new Senglv(); Senglv sl3=new Senglv(); Shirenzu sr1=new Shirenzu(); Shirenzu sr2=new Shirenzu(); Shirenzu sr3=new Shirenzu(); List<Object> l1=new ArrayList<Object>(); List<Object> l2=new ArrayList<Object>(); l1.add(sl1);l1.add(sl2);l1.add(sl3); l2.add(sr1);l2.add(sr2);l2.add(sr3); List<Object> right=new ArrayList<Object>();//右边数据 List<Object> left=new ArrayList<Object>();//左边数据 right.addAll(l1);right.addAll(l2); for (int i = 1; i < 1000; i++) { boolean flag=((i+1)%2)==0?true:false; transportData(flag?left:right,flag?right:left,flag); } Collections.sort(list); System.out.println("最小折返次数:"+list.get(0)); } /** * * @param left * @param right * @param ship=true 为右边;ship=false 为左边 */ public static void transportData(List<Object> left,List<Object> right,boolean ship){ int count=0;//计数器 int k=0; List<Object> l=null; while((right !=null && (k=right.size())>0)){ if(ship){ l=getRandomNum(right,2); left.addAll(l); right.removeAll(l); if(!compareATK(right) || !compareATK(left)){ right.addAll(l); left.removeAll(l); continue; } ship=false; count++; }else{ l=getRandomNum(left,2); left.removeAll(l); right.addAll(l); if(!compareATK(right) || !compareATK(left)){ right.removeAll(l); left.addAll(l); continue; } ship=true; count++; } } //System.out.println("往返次数==="+count); list.add(count); } /** * 攻击力比较大小 僧侣的攻击力和大于食人族的攻击力和时返回true, * 当一边为空时也返回true,否则计算实际攻击力大小 * @param l * @return */ public static boolean compareATK(List<Object> l){ int s1=0,s2=0; for (int i = 0, len = l.size(); i < len; i++) { if(l.get(i) instanceof Senglv){ s1+=((Senglv)l.get(i)).getATK(); }else if(l.get(i) instanceof Shirenzu){ s2+=((Shirenzu)l.get(i)).getATK(); } } return s1==0 || s2==0 || s1>s2; } /** * 从List集合中随机抽取count个数以下的list集合(list.size()<=count) * @param list * @param count * @return */ public static List<Object> getRandomNum(List<Object> list,int count){ List<Object> l=new ArrayList<Object>(); int k=0,m=0; k=(list!=null?list.size():0); if(list!=null && k>=count){ Collections.shuffle(list); m=(new Random().nextInt(count)+1); for (int i = 0; i < m; i++) { l.add(list.get(i)); } }else{ l.addAll(list); } return l; } /** * * @param m1 * @param m2 * @return */ public static boolean compareATK(Map<String,Integer> m1,Map<String,Integer> m2){ int s1=0,s2=0; while(m1.values().iterator().hasNext()){ s1+=m1.values().iterator().next(); } while(m2.values().iterator().hasNext()){ s2+=m2.values().iterator().next(); } return s1>s2; } } class Senglv{ public Senglv(){ } private int ATK=4; public int getATK() { return ATK; } public void setATK(int atk) { ATK = atk; } } class Shirenzu{ public Shirenzu(){ } private int ATK=3; public int getATK() { return ATK; } public void setATK(int atk) { ATK = atk; } }
发表评论
-
java多线程共享对象切换标志
2018-01-06 16:29 471直接上题: 要求创建三个线程,输出 ... -
编译时和运行时顺序输出笔记记录
2017-12-28 14:12 444package com.dennis.test.init; ... -
Java记事本二
2017-12-28 13:45 497//下面代码为两组分类示例 private sta ... -
mongodb在Java环境下简单使用
2015-09-16 18:42 1297mongodb在Java环境下简单使用,简单记录,简单增删查 ... -
Tomcat7+Nginx1.8+Redis2.6负载均衡简单配置
2015-09-06 16:13 1301为了缓解因为Web服务器的session所 ... -
Java简易cglib代码实现方式(AOP)
2015-05-25 17:12 980CGLIB(Code Generation Library) ... -
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio
2015-03-14 17:51 4991linux环境下面出现这种问题(而windows下面可 ... -
quartz集群分布式(并发)部署解决方案-Spring
2015-03-14 17:37 5266项目中使用分布式并发部署定时任务,多台跨JVM,按照常理逻 ... -
redis基本命令、配置参数 - 简单示例(sub/pub)
2014-10-11 18:12 2590(一) redis命令集功能分析 转(htt ... -
计算机原码、反码、补码、位移码
2014-09-16 11:03 777计算机原码、反码、补 ... -
内螺旋数组java实现
2014-09-15 23:14 822最初学习C语言时,看到国外程序员的内螺旋实现,都懵了,感觉 ... -
排列组合
2013-10-17 20:58 0package org.dennis; import ... -
排列组合基本算法
2013-09-03 10:33 0import java.util.ArrayList; i ... -
动态反射代理实现机制两例代码比较(二)
2013-03-29 14:52 1046动态反射代理实现机制两例代码比较,最近研究设计 ... -
动态反射代理实现机制两例代码比较(一)
2013-03-29 14:31 964动态反射代理实现机制两例代码比较,最近研究设计 ... -
解决一例Was8.0异常java.lang.reflect.InvocationTargetException
2013-03-21 19:08 5429... -
Java拼音转换一例
2012-11-27 18:40 1038工作中有时碰到将中文名转换成首字母拼音书写。以前工 ... -
Java工作记事本
2012-11-20 11:00 1198工作始终会遇到很多需要收集的资料,时间长了,难免 ... -
学习Jnotify文件监视
2012-10-09 15:28 2426学习Jnotify文件监视用例 研究文件监视(Win ... -
POI study
2012-09-19 13:52 2511工作需要研究POI技术导出Excel格式,目前实验 ...
相关推荐
这个问题的数学模型可以简化为三个柱子(A、B、C),以及N个不同大小的圆盘,初始时所有圆盘都在柱子A上,按照从大到小的顺序排列,目标是将所有圆盘按照同样的顺序移动到柱子C上,每次只能移动最上方的一个圆盘,且...
神殿的僧侣们要在世界末日之前完成这样一个任务:将这些金盘从第一根柱子全部移到第三根柱子上去,移动时必须遵循以下规则: 1. 每次只能移动最上面的一个盘子; 2. 在任何时候都不能将大盘子放在小盘子之上。 ###...
具体到汉诺塔问题中,可以将整个问题视为以下三个步骤: 1. **第一步**:将柱子A上的N-1个盘子借助柱子C移动到柱子B上。 2. **第二步**:将柱子A上剩下的最后一个大盘子直接移动到柱子C上。 3. **第三步**:将柱子B...
其三个独立的半岛大致可以概括为卡桑德拉(Kassandra)拥有夜生活,希托尼亚(Sithonia)拥有沙滩,而阿索斯(Athos)以僧侣闻名。卡桑德拉离塞萨洛尼基最近,建设更为完善;希托尼亚更为安静,拥有露营地、隐蔽海湾...
汉诺塔问题的起源可追溯到一个印度的古老传说,讲述了僧侣们如何将一系列金盘从一个塔移动到另一个塔上,期间使用了三个柱子。这个谜题的挑战在于如何在有限的条件下,以最少的移动次数完成任务。问题的规则很简单:...
其基本思路是将原问题分解为两个子问题:首先将n-1个盘子借助第三个柱子从A移动到B,然后将剩余的一个大盘子从A移动到C,最后再将之前移动到B的n-1个盘子借助A柱子移动到C。通过这种方式,我们可以将问题不断分解...
传说中,寺庙中的僧侣们需要将64个金盘从一个塔座移动到另一个塔座上,中间可以借助第三个塔座,但必须遵守特定的规则。传统的汉诺塔问题规则包括: 1. 每次只能移动最上方的一个圆盘。 2. 任何时候都不能将一个较大...
4. **测试**:定义变量 `num_disks` 为 3,表示从最简单的情况开始尝试,即移动三个盘子。然后调用 `hanoi` 函数开始游戏。 #### 递归思想 汉诺塔问题的核心在于利用递归的思想解决问题。具体来说,解决汉诺塔问题...
僧侣我们热情的代码僧侣很好奇,希望通过软件开发来解决各种困难。 我们为FOSS启动了Code Monks。 我们想回馈给我们从他们那里学到很多知识的社区。僧侣 Spikey sanju 萨默·纳瓦兹(Samer Nawaz) 瓦塞姆·阿克拉姆...
汉诺塔问题涉及三个柱子,我们称之为A、B和C。盘子大小不一,全部初时堆叠在柱子A上,且大盘子在下,小盘子在上。任务是将这些盘子全部移到柱子C上,移动时遵循三个规则:一次只能移动一个盘子;任何时刻,较大的...
当有多个盘子时,则先将上面的i-1个盘子借助第三个柱子移动到辅助柱子,再将最下面的大盘子直接移动到目标柱子,最后再将之前移动的i-1个盘子从辅助柱子移动到目标柱子。 - **移动方法(move)**:这是一个简单的...
这两类学校在古埃及的文化、科学、行政管理等多个领域中扮演了至关重要的角色,不仅为古埃及社会的发展提供了知识基础,而且为后世教育体系的发展提供了宝贵的经验。 僧侣学校,又称为寺庙学校,主要建立在大城市中...
相传有三个柱子和64个大小不一的金盘子,僧侣们夜以继日地按着规则移动这些盘子,目标是将所有的盘子从一个柱子移动到另一个柱子上。这个过程中有三个原则:一次只能移动一个盘子;大盘子必须始终在小盘子的下方;...
这个函数接受三个参数,分别代表三根柱子,以及一个表示盘子数量的整数`n`。当只有一个盘子时,可以直接将其从源柱子移动到目标柱子。对于多于一个盘子的情况,需要先将上面的`n-1`个盘子借助一个辅助柱子移动到目标...
它的基础是它是一个NodeJS应用程序,它将允许对僧侣(风行者)伤害进行建模。 为什么这是相关的? 好吧,基本上,它使我们可以将电子表格放在一边。 另外,对于我来说,查看数据建模是一个很不错的项目,并且对...
3. **借助第三个柱子完成移动**:如果目标柱子已经有盘子,则必须借助第三个柱子才能完成移动。 #### 三、汉诺塔问题求解思路 对于汉诺塔问题的求解,主要采用递归的方法来实现。 1. **递归定义**:将n个盘子从A...
在这个名为"TheMonkDiamond-main"的压缩包文件中,我们可以推测它包含了与解决这个“僧侣钻石”问题相关的源代码、资源文件或者其他辅助材料。 在HTML中,"僧侣钻石"可能是一个布局或视觉效果的实现,比如一个复杂...
具体来说,我们可以将整个问题分解为以下三个步骤: 1. 将 n-1 个盘子从起始柱子 A 移动到辅助柱子 B 上。 2. 将剩下的那个盘子从起始柱子 A 移动到目标柱子 C 上。 3. 将 n-1 个盘子从辅助柱子 B 移动到目标柱子 C...
汉诺塔问题可以用三个柱子来模拟,通常被称为初始柱、目标柱和辅助柱。初始柱是圆盘开始摆放的位置,目标柱是圆盘需要最终到达的地方,而辅助柱则在移动过程中起到过渡的作用。解决汉诺塔问题的关键在于找到一种策略...
7. 小学数学学习过程通常分为**习得阶段**、**保持阶段**和**提取阶段**,这三个阶段是学生掌握数学知识的关键步骤。 8. **理解**是小学数学学习的重要阶段,通过分析、综合、抽象和概括,学生能掌握概念的基本特征...