Tag: 自动机

如何递归authomata Strange Planet练习?

这个基本思想是,在一个星球上有三种不同的物种,这三种物种中只有两种可以共同生育,结果是这种物种会死于第三种物种的两个新物种,例如,我们有ab和c,物种a和b聚集在一起,让2 c新成员出生。 它就像:1a 1b和1c(对不起语言) 当a和b想要有孩子时他们聚在一起但死了但有两个孩子,这些新孩子来自物种c,结果是: 0a 0b和3 c 在这个casie中,我们说星球成功了,c是占主导地位的。 但是当我有3a 4b 2c并且我需要看看这三个物种中是否有任何一个能在这个星球上成功。 我认为我可以使用递归解决方案,但我总是得到错误: Exception in thread “main” java.lang.StackOverflowError 在函数中我试图使用递归。 这是我的代码,我知道有些事情是错的,但我不知道是什么。 公共类Automata2 { public static void main(String[] args) { int N = 2; while (N <= 14) { partition(N); N++; } } public static void partition(int N) { int n1,n2,n3; for(n1=0;n1<=N;n1++){ for(n2=0;n2<=N;n2++){ for(n3=0;n3<=N;n3++){ if((n1+n2+n3)==N){ strPlanetA(n1, n2, […]

使用Regex修复Java中未转义的XML实体?

我有一些格式错误的XML,我必须解析。 无法解决上游问题。 (当前)问题是&符号并不总是正确转义,所以我需要将&转换为& 如果& 已经存在,我不想把它改为&amp; 。 一般来说,如果任何格式良好的实体已经存在,我不想破坏它。 我不认为通常可以知道可能出现在任何特定XML文档中的所有实体,所以我想要一个像&;这样的解决方案&; 保存完好。 其中是定义初始和结束之间的实体的一组字符; 。 特别是, <和> 不是表示XML元素的文字。 现在,在解析时,如果我看到&我不知道我是否会遇到; , 一个 (空间),行尾或其他。 因此,我认为我必须记住因为我outlook一个会告诉我如何处理原始& 。 我认为我需要Push Down Automaton的强大function才能做到这一点,我认为有限状态机不会因为我认为是内存需求而起作用 – 这是正确的吗? 如果我需要PDA,那么在对String.replaceAll(String, String)的调用中的正则表达式将不起作用。 或者是否有可以解决此问题的Java正则表达式? 请记住:每行可以有多个替换。 (我知道这个问题 ,但它没有提供我正在寻找的答案。)

设计模式问题涉及N个状态和它们之间的转换

我手边有一个问题,我没有得到使用哪种设计模式。 问题是这样的: 我必须建立一个具有’N’状态的系统,我的系统必须根据某些条件从任何状态转换到任何其他状态。 例如:在条件1下,从状态1移动到3,在条件2上从状态1移动到4。 甚至从一个状态到另一个状态的转换也可以在两个或更多个不同的条件下完成。 例如,可以在以下情况下完成从状态1到状态3的转换: 条件1:“它是一个星期天” 条件2:“下雨” 条件3:“下雨和星期天” 在每种情况下,状态3的处理可以是不同的。 我希望我能够清楚地理解这个问题。 请帮助。 非常感谢