Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
48
Task/Van-Eck-sequence/Prolog/van-eck-sequence.pro
Normal file
48
Task/Van-Eck-sequence/Prolog/van-eck-sequence.pro
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
van_eck_init(v(0, 0, _assoc)):-
|
||||
empty_assoc(_assoc).
|
||||
|
||||
van_eck_next(v(Index, Last_term, Last_pos), v(Index1, Next_term, Last_pos1)):-
|
||||
(get_assoc(Last_term, Last_pos, V) ->
|
||||
Next_term is Index - V
|
||||
;
|
||||
Next_term = 0
|
||||
),
|
||||
Index1 is Index + 1,
|
||||
put_assoc(Last_term, Last_pos, Index, Last_pos1).
|
||||
|
||||
van_eck_sequence(N, Seq):-
|
||||
van_eck_init(V),
|
||||
van_eck_sequence(N, V, Seq).
|
||||
|
||||
van_eck_sequence(0, _, []):-!.
|
||||
van_eck_sequence(N, V, [Term|Rest]):-
|
||||
V = v(_, Term, _),
|
||||
van_eck_next(V, V1),
|
||||
N1 is N - 1,
|
||||
van_eck_sequence(N1, V1, Rest).
|
||||
|
||||
write_list(From, To, _, _):-
|
||||
To < From,
|
||||
!.
|
||||
write_list(_, _, _, []):-!.
|
||||
write_list(From, To, N, [_|Rest]):-
|
||||
From > N,
|
||||
!,
|
||||
N1 is N + 1,
|
||||
write_list(From, To, N1, Rest).
|
||||
write_list(From, To, N, [E|Rest]):-
|
||||
writef('%t ', [E]),
|
||||
F1 is From + 1,
|
||||
N1 is N + 1,
|
||||
write_list(F1, To, N1, Rest).
|
||||
|
||||
write_list(From, To, List):-
|
||||
write_list(From, To, 1, List),
|
||||
nl.
|
||||
|
||||
main:-
|
||||
van_eck_sequence(1000, Seq),
|
||||
writeln('First 10 terms of the Van Eck sequence:'),
|
||||
write_list(1, 10, Seq),
|
||||
writeln('Terms 991 to 1000 of the Van Eck sequence:'),
|
||||
write_list(991, 1000, Seq).
|
||||
Loading…
Add table
Add a link
Reference in a new issue