编程题:L-System
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
```
答案:若无答案欢迎评论
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
```
答案:若无答案欢迎评论