用JAVA编出一个细胞自动机的程序,跪求大神帮助!

用JAVA编出一个细胞自动机的程序,跪求大神帮助!,第1张

public class Model {

Integer a[]

Integer b[]

Integer rule[]

Integer TIME_MAX = 41

Integer NUM_OF_CELL = 41

public Model() {

a = new Integer[NUM_OF_CELL]

b = new Integer[NUM_OF_CELL]

rule = new Integer[8]

rule[0] = 0

rule[1] = 1

rule[2] = 1

rule[3] = 0

rule[4] = 1

rule[5] = 1

rule[6] = 0

rule[7] = 0

for (int i = 0i <NUM_OF_CELLi++) {

a[i] = 0

}

a[NUM_OF_CELL / 2] = 1

}

public static void main(String[] args) {

Model sm = new Model ()

sm.doIt()

}

private void doIt() {

String str = ""

for (int t = 0t <TIME_MAXt++) {

for (int i = 0i <NUM_OF_CELLi++) {

b[i] = function(a[(NUM_OF_CELL + i - 1) % NUM_OF_CELL],a[i],a[(i + 1) % NUM_OF_CELL])

if (a[i] == 0) {

str = "#"

} else {

str = "*"

}

System.out.print(str + " ")

}

System.out.println("")

for (int j = 0j <NUM_OF_CELLj++) {

a[j] = b[j]

}

}

}

private Integer function(Integer i1, Integer i2, Integer i3) {

if (i1 == 0 &i2 == 0 &i3 == 0) {

return rule[0]

}

if (i1 == 0 &i2 == 0 &i3 == 1) {

return rule[1]

}

if (i1 == 0 &i2 == 1 &i3 == 0) {

return rule[2]

}

if (i1 == 0 &i2 == 1 &i3 == 1) {

return rule[3]

}

if (i1 == 1 &i2 == 0 &i3 == 0) {

return rule[4]

}

if (i1 == 1 &i2 == 0 &i3 == 1) {

return rule[5]

}

if (i1 == 1 &i2 == 1 &i3 == 0) {

return rule[6]

}

if (i1 == 1 &i2 == 1 &i3 == 1) {

return rule[7]

}

return 0

}

}

词法分析:

词法分析的任务是对由字符组成的单词进行处理,从左至右逐个腊轿字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。

词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。

语法分析:

编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一轮御肆个语法单位。编译程序的语法规则可用上下文无关文法来刻画。

语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。

中间代码:

中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现中间代码,即为中间语言程序,中间语言的复杂性介于源拆槐程序语言和机器语言之间。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12563168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存