|
1 |
| - |
2 |
| - |
3 |
| - ?- write("Hello , Prolog |
4 |
| - "), n_factorial (0,1 ).n_facto |
5 |
| - rial(N, F):-N #>0,N1#=N -1,n_factori |
6 |
| - al(N1,F1),F#=N *F1.bin_se arch(Elt,List,R |
7 |
| - esult):-length(List,N),bin _search_inner(El |
8 |
| - t, List,1,N,Result).bin_sea rch_inner(Elt,Lis |
9 |
| - t,J,J,J):- nth(J,List,Elt). bin_search_inner ( |
10 |
| - Elt,List,B egin,End, Mid):-Begin<End,Mid |
11 |
| - is(Begin+E nd)div 2,nth(M id,List,Elt).bin_sea |
12 |
| - rch_inne r(Elt,Li st,Beg in,End,Result):- B |
13 |
| - egin<En d,Mid is (Begin +End)div2,nth(Mid, |
14 |
| - List,M id,El t),Mid,El t<El |
15 |
| - t,New BeginisMid+1,bin_search_inner(E |
16 |
| - lt,L ist,NewBegin,End,Result). bin_search_ |
17 |
| - inn er(Elt,List,Begin,End,Result):-Begin |
18 |
| - <En d,Mid is(Begin+End)div 2,nth( Mid, |
19 |
| - L ist,MidElt),Mid,Elt>Elt,NewEnd is |
20 |
| - Mid-1,bin_search_inner(Elt,Lis |
21 |
| - ,Begin, NewEnd, Result ). |
22 |
| - |
| 1 | +{0} bin_search(Elt,Li{1}st,{0}Re |
| 2 | +{0} sult):-length(List,N{1}), {0}bin_se |
| 3 | +{0} arch_inner(Elt,List,1,N{1},Re{0}sult).bi |
| 4 | +{0} n_search_inner(Elt,List,{1}J,J{0},J):-nth(J |
| 5 | +{0} ,List,Elt).bin_search_inn{1}er({0}Elt,List,Be |
| 6 | +{0} gin,End,M{1}id):-Begin{0} < End,{1}Mid{0} is (Begin+E |
| 7 | +{0} nd) div 2{1},n({0}thMid,L{1}is{0}t,Elt){1}.bi{0}n_search_inn |
| 8 | +{0} er(Elt,L{1}is{0}t,B{1}egin,{0}End{1},R{0}esul{1}t):{0}-Begin < End, |
| 9 | +{0} Mid is ({1}De{0}gi{1}n+En{0}d) {1}d{0}i{1}v{0} 2,nt{1}h(M{0}id,List,MidEl |
| 10 | +{0} t),MidEl{1}t<{0}El{1}t,NewBeg{0}i{1}n i{0}s M{1}id+{0}1,bin_search_ |
| 11 | +{0} inner(El{1}t,L{0}ist{1},Ne{0}wBeg{1}in{0},End,{1}Result). bin{0}_se |
| 12 | +{0} arch_inn{1}er(E{0}lt,List,{1}Be{0}gin,End{1},Result):-Be{0}gi |
| 13 | +{0} n<End,M{1}id is (Begin{0}+End) div 2,nth(Mid,Li |
| 14 | +{0} st,Mid{1}Elt{0}),MidElt>Elt,NewEnd is Mid-1,b |
| 15 | +{0} in_s{1}ear{0}ch_inner(Elt,List,Begin,NewEn |
| 16 | +{0} d,R{1}esu{0}lt).n_factorial(0,1).n_fact |
| 17 | +{0} o{1}ria{0}l(N,F):-N #>0,N1#=N-1,n_f |
| 18 | +{0} {1}ac{0}torial(N1,F1),F#=N *F1. |
0 commit comments