Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
10
Task/Fibonacci-sequence/Picat/fibonacci-sequence-1.picat
Normal file
10
Task/Fibonacci-sequence/Picat/fibonacci-sequence-1.picat
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
go =>
|
||||
println([fib_fun(I) : I in 1..10]),
|
||||
F1=fib_fun(2**10),
|
||||
println(f1=F1),
|
||||
nl.
|
||||
|
||||
table
|
||||
fib_fun(0) = 0.
|
||||
fib_fun(1) = 1.
|
||||
fib_fun(N) = fib_fun(N-1) + fib_fun(N-2).
|
||||
10
Task/Fibonacci-sequence/Picat/fibonacci-sequence-2.picat
Normal file
10
Task/Fibonacci-sequence/Picat/fibonacci-sequence-2.picat
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
fib_array(0,[0]).
|
||||
fib_array(1,[0,1]).
|
||||
fib_array(N,A) :-
|
||||
N > 1,
|
||||
A = new_array(N),
|
||||
A[1] = 1,
|
||||
A[2] = 1,
|
||||
foreach(I in 3..N)
|
||||
A[I] = A[I-1] + A[I-2]
|
||||
end.
|
||||
8
Task/Fibonacci-sequence/Picat/fibonacci-sequence-3.picat
Normal file
8
Task/Fibonacci-sequence/Picat/fibonacci-sequence-3.picat
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fib_loop(N) = Curr =>
|
||||
Curr = 0,
|
||||
Prev = 1,
|
||||
foreach(_I in 1..N)
|
||||
Tmp = Curr,
|
||||
Curr := Curr + Prev,
|
||||
Prev := Tmp
|
||||
end.
|
||||
1
Task/Fibonacci-sequence/Picat/fibonacci-sequence-4.picat
Normal file
1
Task/Fibonacci-sequence/Picat/fibonacci-sequence-4.picat
Normal file
|
|
@ -0,0 +1 @@
|
|||
fib_formula(N) = round((0.5 + 0.5*sqrt(5))**N / sqrt(5)).
|
||||
9
Task/Fibonacci-sequence/Picat/fibonacci-sequence-5.picat
Normal file
9
Task/Fibonacci-sequence/Picat/fibonacci-sequence-5.picat
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
go =>fib_lazy(X),
|
||||
A = new_list(15),
|
||||
append(A,_,X),
|
||||
println(A),
|
||||
|
||||
fib_lazy([0,1|X]) :-
|
||||
ffib(0,1,X).
|
||||
ffib(A,B,X) :-
|
||||
freeze(X, (C is A+B, X=[C|Y], ffib(B,C,Y)) ).
|
||||
10
Task/Fibonacci-sequence/Picat/fibonacci-sequence-6.picat
Normal file
10
Task/Fibonacci-sequence/Picat/fibonacci-sequence-6.picat
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
go =>
|
||||
take(15, $fib_gen(0,1), $T-[], _G),
|
||||
println(T).
|
||||
|
||||
take( 0, Next, Z-Z, Next).
|
||||
take( N, Next, [A|B]-Z, NZ):- N>0, !, next( Next, A, Next1),
|
||||
N1 is N-1,
|
||||
take( N1, Next1, $B-Z, NZ).
|
||||
|
||||
next( fib_gen(A,B), A, fib_gen(B,C)):- C is A+B.
|
||||
27
Task/Fibonacci-sequence/Picat/fibonacci-sequence-7.picat
Normal file
27
Task/Fibonacci-sequence/Picat/fibonacci-sequence-7.picat
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import cp.
|
||||
|
||||
go =>
|
||||
N1 = 30,
|
||||
fib_rev(30,F1),
|
||||
println([n1=N1,fib1=F1]),
|
||||
|
||||
F2 #= 20365011074,
|
||||
fib_rev(N2,F2),
|
||||
println([n2=N2,f2=F2]),
|
||||
|
||||
F3 = 61305790721611591,
|
||||
fib_rev(N3,F3),
|
||||
println([n3=N3,F3]),
|
||||
nl.
|
||||
|
||||
table
|
||||
fib_rev(0,1).
|
||||
fib_rev(1,1).
|
||||
fib_rev(N,F) :-
|
||||
N #> 0,
|
||||
F #> 0,
|
||||
N1 #= N-1,
|
||||
N2 #= N-2,
|
||||
fib_rev(N1,F1),
|
||||
fib_rev(N2,F2),
|
||||
F #= F1+F2.
|
||||
Loading…
Add table
Add a link
Reference in a new issue