【问题标题】:Prolog - artificial intelligence (Lists, lines)Prolog - 人工智能(列表,行)
【发布时间】:2018-11-07 09:38:50
【问题描述】:

我正在尝试这种新型编程,Prolog。

我想用公式Ax + By + C = 0 定义一条线line(A,B,C),并且我想定义多条线(它的类型应该是:multitudine_lines(ListOfLines)`):

multitude_lines([line(2,3,4),line(1,2,3),line(2,6,7)]).

我定义了一条线,但我不知道如何定义 multitude_lines。

我需要一些帮助...

【问题讨论】:

  • 问题没有得到充分定义。您是否只寻找具有整数系数和坐标的线?你的“多行”中的行有什么共同点?他们都满足特定条件吗?我不会将此归类为人工智能问题。
  • 线条也可以有浮点系数和坐标。不,来自多条线的线没有共同点。
  • 多行必须以行列表作为参数。 @luker

标签: prolog


【解决方案1】:

如果我正确理解您的问题,multitude_lines 应该将“行”列表转换为方程式列表。该程序将每一行转换为一个方程:

:- initialization(main).
:- set_prolog_flag(double_quotes, chars). 

main :- multitude_lines([line(2,3,4),line(1,2,3),line(2,6,7)],Output),writeln(Output).

multitude_lines([],[]).
multitude_lines([line(A,B,C)|D],[(A*x + B*y + C = 0)|D1]) :-
    multitude_lines(D,D1).

这个程序打印[2*x+3*y+4=0,1*x+2*y+3=0,2*x+6*y+7=0]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2011-02-25
    • 2020-03-01
    相关资源
    最近更新 更多