基于产生式的动物识别系统(只需简单的数组以及if-else语句)
建立一个动物识别系统的规则库,用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等7种动物。
为了识别这些动物,可以根据动物识别的特征,建立包含下述规则的规则库:
R1:if 动物 有毛发 then 动物是 哺乳动物
R2:if 动物 有奶 then 动物是 哺乳动物
R3:if 动物 有羽毛 then 动物 是鸟
R4:if 动物 会飞 and 会生蛋 then 动物是鸟
R5:if 动物 吃肉 then 动物是 食肉动物
R6:if 动物 有犀利牙齿 and 有爪 and 眼向前方 then 动物是 食肉动物
R7:if 动物是 哺乳动物 and 有蹄 then 动物是 有蹄类动物
R8:if 动物是 哺乳动物 and 反刍 then 动物是 有蹄类动物R9:if 动物是 哺乳动物 and 是 食肉动物 and 有黄褐色 and 有暗斑点 then 动物是 豹
R10:if 动物是 哺乳动物 and 是 食肉动物 and 有黄褐色 and 有黑色条纹 then 动物是 虎
R11:if 动物是 有蹄类动物 and 有长脖子and 有长腿 and 有暗斑点 then 动物是 长颈鹿
R12:if 动物是 有蹄类动物 and 有黑色条纹 then 动物是 斑马
R13:if 动物是 鸟 and 不会飞 and 有长脖子 and 有长腿 and 有黑白二色 then 动物是 鸵鸟
R14:if 动物是 鸟 and不会飞 and 会游泳 and 有黑白二色 then 动物是 企鹅
R15:if 动物是 鸟 and 善飞 then 动物是信天翁
人工智能基础课老师布置的作业,对于显示界面没有要求,只要输入满足的特征值能输出对应的动物即可。
废话不多说,直接上代码,使用Java编写,用C/C++也一样,只需要稍微改下输入输出这样的基本语法即可。
package top.alphatx.ai; //这是包名,别忘了改
import java.util.Scanner;
public class ExerTwo {
public static void main(String[] args) {
int[] base = new int[24]; /* 数组base用来存放24个特征值,为0表示不满足该特征,为1表示满足。Java中此处int类型默认为0,如果使用其他默认不为0的语言需要添加代码(例如for循环)给数组每个值赋初始值为0 */
int[] temp = new int[99]; //数组temp用来存放输入的值,作为base数组的下标
System.out.println("-----特征代表值-----\n");
System.out.println("b0:毛;b1:奶;b2:羽毛;b3:飞;b4:吃肉;b5:犬齿;b6:下蛋;b7:有爪;b8:眼盯前方;b9:有蹄;b10:反刍;\nb11:黄褐色;"
+ "b12:暗斑点;b13:黑色条纹;b14:长脖子;b15:长腿;b16:黑白二色;b17:会游泳;b18:不会飞;b19:善飞;\n"
+ "b20:哺乳动物;b21:鸟;b22:食肉动物;b23:有蹄动物");
System.out.println("\n请输入特征值的个数:");
Scanner sc = new<