人工智能之一般合一算法Java实现之
原标题:人工智能之一般合一算法Java实现之
原文来自:博客园 原文链接:https://www.cnblogs.com/Kitty-/p/10678884.html
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Unify { private static String EMPTY = " "; private static String FAIL = "Failed"; private static Listlist1 = new ArrayList(); private static Listlist2 = new ArrayList(); public static void main(String[] args){ //输入两个谓词公式 System.out.println("请输入待判断的两个表达式,变量用小写字母表示,常量用大写字符或字符串表示。"); Scanner input = new Scanner(System.in); String E1 = input.nextLine(); list1 = Unify.getElements(E1); String E2 = input.nextLine(); list2 = Unify.getElements(E2); System.out.println("最一般的表达式为:" + Unify.unify(E1, E2)); } private static ListgetElements(String E){ Listlist = new ArrayList(); for(int i = 0; i < E.length(); i++){ if(E.charAt(i) == ')') list.add("()"); if((E.charAt(i) >= 'a' && E.charAt(i) = 'A' && E.charAt(i) <= 'Z')){ int j = i+1; while(j < E.length() && ((E.charAt(j) >= 'a' && E.charAt(j) = 'A' && E.charAt(j) 1){ if(E.equals("()")) return true; if(E.contains(" ") || E.contains("(") || E.contains(")") || E.contains(",")) return false; else return true; } else{ if(E.charAt(0)>='A' && E.charAt(0) 1){ if(E.contains(" ") || E.contains("(") || E.contains(")") || E.contains(",")) return false; else return true; } else{ if(E.charAt(0)>='a' && E.charAt(0) <= 'z') return true; else return false; } } return false; } private static String getFirstElement(Listlist){ String element = list.get(0); list.remove(0); return element; } //该函数查找s2在E中的位置并用s1替代E中相应的s2 private static String apply(String subs1, String E, Listlist){ if(subs1.equals(Unify.EMPTY)) return E; String sub1 = subs1.substring(0, subs1.indexOf('/')); String sub2 = subs1.substring(subs1.indexOf('/') + 1, subs1.length()); E = E.replaceAll(sub2, sub1); for(int i = 0; i < list.size(); i++){ if(list.get(i).equals(sub2)) list.set(i, sub1); } return E; } private static String composition(String subs1, String subs2){ if(subs1.equals(Unify.EMPTY) && subs2.equals(Unify.EMPTY)) return Unify.EMPTY; else if(subs1.equals(Unify.EMPTY)) return subs2; else if(subs2.equals(Unify.EMPTY)) return subs1; else return subs1 + ", " + subs2; } private static String getRest(String E, String firstElement){ if(!E.isEmpty()){ String e; if(firstElement.equals("()")) e = E.replaceFirst("\(\)","0"); else e = E.replaceFirst(firstElement,"0"); if(e.length() == 1) return ""; int i = e.indexOf('0'); int j = i + 1; while(e.charAt(j) == ' ' || e.charAt(j) == ',') j++; e = e.substring(0, i) + e.substring(j); return e; } return null; } }
免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。
合作及投稿邮箱:E-mail:editor@tusaishared.com
热门资源
Python 爬虫(二)...
所谓爬虫就是模拟客户端发送网络请求,获取网络响...
TensorFlow从1到2...
原文第四篇中,我们介绍了官方的入门案例MNIST,功...
TensorFlow从1到2...
“回归”这个词,既是Regression算法的名称,也代表...
机器学习中的熵、...
熵 (entropy) 这一词最初来源于热力学。1948年,克...
TensorFlow2.0(10...
前面的博客中我们说过,在加载数据和预处理数据时...
智能在线
400-630-6780
聆听.建议反馈
E-mail: support@tusaishared.com