Hofstadter Q sequence: Difference between revisions
Content added Content deleted
Drkameleon (talk | contribs) (Added Arturo implementation) |
(Added Quackery.) |
||
Line 2,726: | Line 2,726: | ||
print("Q(i+1) < Q(i) for i [1..100000] is true %i times." % |
print("Q(i+1) < Q(i) for i [1..100000] is true %i times." % |
||
sum([q.seq[i] > q.seq[i + 1] for i in range(1, 100000)]))</lang> |
sum([q.seq[i] > q.seq[i + 1] for i in range(1, 100000)]))</lang> |
||
=={{header|Quackery}}== |
|||
<lang Quackery> [ 2dup dup 0 < if 1+ |
|||
abs swap size < |
|||
not if |
|||
[ drop size 1+ number$ |
|||
$ "Term " swap join |
|||
$ " of the Q sequence is not defined." |
|||
join message put bail ] |
|||
peek ] is qpeek ( [ n --> x ) |
|||
[ dup dup -1 qpeek negate qpeek |
|||
dip [ dup dup -2 qpeek negate qpeek ] |
|||
+ join ] is next-q ( [ --> [ ) |
|||
[ dup size 2 < iff |
|||
[ drop 0 ] done |
|||
0 swap behead swap |
|||
witheach |
|||
[ tuck > if [ dip 1+ ] ] |
|||
drop ] is drops ( [ --> n ) |
|||
0 backup |
|||
[ ' [ 1 1 ] |
|||
998 times next-q |
|||
dup |
|||
-1 split swap 10 split drop |
|||
witheach [ echo sp ] |
|||
say "... " |
|||
0 peek echo cr |
|||
99000 times next-q |
|||
drops echo |
|||
say " decreasing terms" ] |
|||
bailed if |
|||
[ message take cr echo$ cr ]</lang> |
|||
{{out}} |
|||
<pre>1 1 2 3 3 4 5 5 6 6 ... 502 |
|||
49798 decreasing terms</pre> |
|||
=={{header|R}}== |
=={{header|R}}== |