【问题标题】:Prolog, return only smallest resultProlog,只返回最小的结果
【发布时间】:2020-05-01 00:15:10
【问题描述】:

例如我的输出是这样的

?- sroute(india,england,X).
X = 2481 ;
X = 3438 ;
X = 1931 ;
X = 3762 ;
X = 3840 ;
X = 1922 ;
X = 2668 ;
X = 2677 ;
X = 4184 ;
X = 3227 ;
X = 2000 ;
false.

我假设我在我的代码中找到了所有路线及其距离(递归)并且它们都是正确的,但我只想看到“X = 1922”。当我问 sroute(印度、英格兰、X)时。我该怎么做,谢谢你的帮助。

【问题讨论】:

    标签: prolog shortest-path minimum


    【解决方案1】:

    您可以调用setof/3 来获取排序集并仅获取结果集的第一个元素:

    setof(X, sroute(india,england,X), [Min|_]).
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 2016-06-27
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      相关资源
      最近更新 更多