| |
用人工智能工具轻松解决爱因斯坦智力题 |
出处:博客园 |
|
| [ 2005-09-22 10:14:27
] |
作者:mahope
|
责任编辑:moningfeng |
用NSolver如何解决问题?
先举一个简单的例子:
IQ 题: 农场里有兔子和鸡若干只,知道共20个头和56条腿。问兔子和鸡各多少只?
用c#来解这个问题,可能是:
using System; public class Rabbit { public int rabbit = 0; public int pheasant = 0; public void Run() { for (rabbit = 0; rabbit<=20; rabbit++) for (pheasant = 0; pheasant<=20; pheasant++) if (rabbit+pheasant==20 && rabbit*4+pheasant*2==56) Console.WriteLine( "Rabbit["+rabbit+"] Pheasant["+pheasant+"]"); } public static void Main() {(new Rabbit()).Run();} } 有什么不足?
1、没有变量/未知量的概念 2、没有什么值合法什么不合法的概念(问题域) 3、没有变量间的关系/约束概念 4、所有都Hardcode了,不能扩展到更复杂的问题 5、暴力破解穷举
|