简而言之:如何在列表中找到最小值?(感谢kaarel的建议)
很长的故事:
我在amzi prolog中创建了一个加权图并给出了2个节点,我能够检索路径列表.但是,我需要在此路径中找到最小值,但无法遍历列表来执行此操作.我可以请您就如何确定清单中的最小值寻求建议吗?
我的代码目前看起来像这样:
arc(1,2). arc(2,3). arc(3,4). arc(3,5). arc(3,6). arc(2,5). arc(5,6). arc(2,6). path(X,Z,A) :- (arc(X,Y),path(Y,Z,A1),A is A1+1;arc(X,Z), A is 1).
因此,"键入findall(Z,路径(2,6,Z),L)." 在听众中允许我获得一个列表[3,2,2,1].我需要从这里检索最小值并将其乘以一个数量.有人可以建议如何检索最小值?谢谢!
我正在努力实现模拟退火程序,其中一部分涉及从我的java程序读取的.txt文件中计算分数.
1)从用户读取输入字符串.我的输入字符串越长,下面发生以下异常的可能性就越大
2)计算得分实质上是添加了很多十进制数,我把它存储在'double'变量中.
有人可以告诉我为什么会发生这样的例外吗?
来自Hill Swap的分数:0.24874990000000005交换后...线程"main"中的异常java.lang.NumberFormatException:对于输入字符串:"7.92066E-"at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
非常感谢!
java double exception simulated-annealing numberformatexception