Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
|
|
@ -0,0 +1,37 @@
|
|||
USING: assocs grouping io kernel math math.combinatorics
|
||||
math.functions math.ranges math.statistics math.text.utils
|
||||
prettyprint sequences sets ;
|
||||
IN: rosetta-code.self-referential-sequence
|
||||
|
||||
: next-term ( seq -- seq ) histogram >alist concat ;
|
||||
|
||||
! Output the self-referential sequence, given a seed value.
|
||||
: srs ( seq -- seq n )
|
||||
V{ } clone [ 2dup member? ] [ 2dup push [ next-term ] dip ]
|
||||
until nip dup length ;
|
||||
|
||||
: digit-before? ( m n -- ? ) dup zero? [ 2drop t ] [ <= ] if ;
|
||||
|
||||
! The numbers from 1 to n sans permutations.
|
||||
: candidates ( n -- seq )
|
||||
[1,b] [ 1 digit-groups reverse ] map
|
||||
[ [ digit-before? ] monotonic? ] filter ;
|
||||
|
||||
: max-seed ( n -- seq ) candidates [ srs nip ] supremum-by ;
|
||||
|
||||
: max-seeds ( n -- seq )
|
||||
max-seed <permutations> members [ first zero? ] reject ;
|
||||
|
||||
: digits>number ( seq -- n ) [ 10^ * ] map-index sum ;
|
||||
|
||||
: >numbers ( seq -- seq ) [ digits>number ] map ;
|
||||
|
||||
: main ( -- )
|
||||
"Seed value(s): " write
|
||||
1,000,000 max-seeds
|
||||
[ [ reverse ] map >numbers . ]
|
||||
[ first srs ] bi
|
||||
"Iterations: " write .
|
||||
"Sequence:" print >numbers . ;
|
||||
|
||||
MAIN: main
|
||||
Loading…
Add table
Add a link
Reference in a new issue