请教:定理自动证明程序实现

revolution1985 2007-10-24 11:52:00
最近在学人工智能,想用java写一个定理的自动证明程序,自动实现定理基于规则的和基于归结的演绎推理,有哪位大虾做过给小弟指点一下,不用给出完整的程序,给个思路就行,小弟在这先谢了
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2007-10-24
  • 打赏
  • 举报
回复
对于人工智能没什么研究
以前好像听说过一种prolog语言,专门用于逻辑推理的,搜索一下该语言的相关资料,然后自己参考改成java程序看看。
qybao 2007-10-24
  • 打赏
  • 举报
回复
不好意思,发错了,开了几个页面自己弄乱了
qybao 2007-10-24
  • 打赏
  • 举报
回复
在系统中System.out.println("n=" + n);//看看n的情况
当你第一次增加时
if(list[n][0] == " ") //不知道你改成equals了没有
这次判断成功,所以最追加了一条记录,但此时n没有改变,还是3
当你第二次增加时,首先输出一次“请输入”,而此时因为n是3
所以if(list[n][0] == " ") 判断失败
程序走到
else
{
n++;
add();
}
又再次调用了add方法,这时又输出一次“请输入”所以就是你说的输出2次了
所以应该在追加成功后对增加n

if(j == 4)
{
System.out.println("增加成功!");
display();
n++;//这里
}
然后
else
{
n++;
add();
}
这部分不要。

而你把“请输入”放到if里,也就是
只有if(list[n][0] == " ")判断成功才会输出
所以第二次增加时,因为n是3
所以if(list[n][0] == " ") 判断失败,所以没有输出“请输入”
而程序走到
else
{
n++;
add();
}
又再次调用了add方法,这时n=4
if(list[n][0] == " ") 判断成功,所以这时才输出“请输入”,所以也就只有一次了

这样说明,LZ该清楚了吧,建议你在学习的时候,自己在程序中多打印一些信息,这样你自己就可以根据这些信息去追踪程序的执行顺序,然后自己再去想想为什么会这样。多动手多思考才有助于提高。




62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧