Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,37 @@
|
|||
# Emit a stream of consecutive primes.
|
||||
# The stream is unbounded if . is null or infinite,
|
||||
# otherwise it continues up to but excluding `.`.
|
||||
def primes:
|
||||
(if . == null then infinite else . end) as $n
|
||||
| 2, (range(3; $n; 2) | select(is_prime));
|
||||
|
||||
# s is a stream
|
||||
# $deltas is an array
|
||||
# Output: a stream of arrays, each corresponding to a selection of consecutive
|
||||
# items from s satisfying the differences requirement.
|
||||
def filter_differences(s; $deltas):
|
||||
|
||||
def diffs_equal: # i.e. equal to $deltas
|
||||
. as $in
|
||||
| all( range(1;length);
|
||||
($in[.] - $in[.-1]) == $deltas[. - 1]);
|
||||
|
||||
($deltas|length + 1) as $n
|
||||
| foreach s as $x ( {};
|
||||
.emit = null
|
||||
| .tuple += [$x]
|
||||
| .tuple |= .[-$n:]
|
||||
| if (.tuple|length) == $n
|
||||
then if (.tuple|diffs_equal) then .emit = .tuple
|
||||
else .
|
||||
end
|
||||
else .
|
||||
end;
|
||||
select(.emit).emit );
|
||||
|
||||
def report_first_last_count(s):
|
||||
null | {first,last,count}
|
||||
| reduce s as $x (.;
|
||||
if .first == null then .first = $x else . end
|
||||
| .count = .count + 1
|
||||
| .last = $x ) ;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
[pow(10;6) | primes] as $p1e6
|
||||
| ([2], [1], [2,2], [2,4], [4,2], [6,4,2]) as $d
|
||||
| ("\nFor deltas = \($d):", report_first_last_count(filter_differences($p1e6[]; $d ) ) )
|
||||
Loading…
Add table
Add a link
Reference in a new issue