performance - 如何提高程序的性能?
问题描述
我编写了一个 Prolog 程序来解决密码问题,但运行时间并没有那么短。如何在不使用任何其他库的情况下提高运行时间?谢谢!
validDigit(X) :- member(X,[0,1,2,3,4,5,6,7,8,9]).
validStart(X) :- member(X,[1,2,3,4,5,6,7,8,9]).
assign([H|[]]) :- validDigit(H).
assign([H|Tail]) :- validDigit(H), assign(Tail), all_different([H|Tail]).
findTail(List,H,T) :- append(H,[T],List).
convert([T],T) :- validDigit(T).
convert(List,Num) :- findTail(List,H,T), convert(H,HDigit), Num is (HDigit*10+T).
verbalArithmetic(WordList,[H1|Tail1],[H2|Tail2],Word3) :-
validStart(H1), validStart(H2), assign(WordList),
convert([H1|Tail1],Num1),convert([H2|Tail2],Num2), convert(Word3,Num3),
Sum is Num1+Num2, Num3 = Sum.
解决方案
推荐阅读
- python - 如何在 Python 中打印异常对象的堆栈跟踪?
- odoo - 不能基于访问权限来查看视图
- bash - 中断命令,如: fg ; 下一个程序
- javascript - 忽略 package-lock.json 中的某些包
- visual-studio-code - 使用 Visual Studio 代码的 AWS Lambda
- shiny - 如何为 Shiny 应用程序定义超时选项
- django - 如何在 formwizard 的 done 方法中访问 form_list 中的表单?
- android - 有什么方法可以导出 Xamarin.Forms 应用程序以便我可以从 Android Studio Java 应用程序调用?
- c# - 将过滤器添加到 ICollectionView
- javascript - JavaScript-即使使用 slice() 洗牌后数组大小也会翻倍