构建动物识别系统
系统分为两部分,第一部分是初始化综合数据库,分为两类,一类是间接数据库,即不指向最终动物的信息。另一类是直接数据库,即指向最终动物的信息。使用的是二维列表加上一个一维列表存储key与value。第二部分为添加数据库和识别动物,查询的时候添加,可以有效的扩增数据库,使功能更灵活与完善。在识别动物的时候,先在间接数据库中完善信息,在直接数据库中查找对应的动物,记录信息时,使用字典记录某个特征是否出现,这样查询的复杂度就为O(1)。(这一段为老师所给提示)
思路:
1、我选择构建直接、间接数据库的方式为将条件存入列表中,列表中的元素都有对应的下标,将下标作为字典的值、结果作为字典的键构成数据库,这样条件和结果就能构成一一对应的关系。因此程序中的数据库是包括列表、字典两部分的。
eg: 间接库列表:奶 哺乳动物+蹄 羽毛
间接库字典:哺乳动物->0 蹄类动物->1 鸟->2
2、识别动物的时候,先在间接库中进行推理,再在直接库中推理。
Indirdict=dict()#间接库字典,用于从数字寻找对应结果
Dirdict=dict()#直接库字典,用于从数字寻找对应结果
Indirlist=[]#间接库列表,用于存放动物特征的集合和定义、存放这个集合对应数字
Dirlist=[]#直接库列表,用于存放动物特征的集合和定义、存放这个集