-->
当前位置:首页 > 题库 > 正文内容

编程题:L-System

Luz4年前 (2021-05-10)题库651
L-System 是 Lindenmayer System的简称,这是一套基于规则语法的字符串重写系统。一个L-System 包含一套语法符号和对应的生成规则,这套语法符号中包含一个初始的原子字符串,通过对应的生成规则,最终将原子字符串重写扩充成一个复杂的字符串。而这个最终的字符串就是一个复杂的几何结构。
L-System通常以三元组的形式定义如下:

G =(V,ω,P)

其中,V 是一组符号,它包含一组变量和常量;ω(原子符号或初始串)是一个原子字符串,又称为初始字符串;P是一组生成规则,它定义变量的演化生成规则。

L-System一个经典案例是简单分形树,定义如下:

变量: 0 1

常量: [ ]

原子符号  : 0

生成规则  : (1 -> 11), (0 -> 1[0]0)

根据以上规则可以得到:

0次迭代(原子符号): 0

1次迭代:  1[0]0

2次迭代: 11[1[0]0]1[0]0

3次迭代: 1111[11[1[0]0]1[0]0]11[1[0]0]1[0]0


### 输入格式:

输入包含5行内容。第1行包含V个变量(1<=V<=50), 第2行包含C个常量(0<=C<=50),每个变量和常量的符号长度都为1, 如果没有常量,则该行为空行;第3行是原子字符串,长度不超过1000;第4行包含R条(1<=R<=50)生成规则,每条生成规则不超过50个字符, 用一对圆括号包含在内。多条生成规则之间采用逗号分隔,规则中间采用”->”表示演化动作。第5行是迭代次数n (n>=0)。题目保证任何变量和常量名都不会是空格、左右圆括号、逗号以及"->"。

### 输出格式:

输出迭代n次后的符号串,符号串长度保证不超过10$$^6$$。

### 输入样例:

在这里给出一组输入。例如:

```in
0 1
[ ]
0
(1 -> 11), (0 -> 1[0]0)
3
```

### 输出样例:

输出:

```out
1111[11[1[0]0]1[0]0]11[1[0]0]1[0]0
```






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。