42 lines
1.0 KiB
Plaintext
42 lines
1.0 KiB
Plaintext
*FLOAT64
|
|
DIM list$(30)
|
|
maxiter% = 0
|
|
maxseed% = 0
|
|
FOR seed% = 0 TO 999999
|
|
list$(0) = STR$(seed%)
|
|
iter% = 0
|
|
REPEAT
|
|
list$(iter%+1) = FNseq(list$(iter%))
|
|
IF VALlist$(iter%+1) <= VALlist$(iter%) THEN
|
|
FOR try% = iter% TO 0 STEP -1
|
|
IF list$(iter%+1) = list$(try%) EXIT REPEAT
|
|
NEXT
|
|
ENDIF
|
|
iter% += 1
|
|
UNTIL FALSE
|
|
IF iter% >= maxiter% THEN
|
|
IF iter% > maxiter% CLS
|
|
maxiter% = iter%
|
|
maxseed% = seed%
|
|
PRINT "Seed " ;seed% " has "; iter% " iterations"
|
|
ENDIF
|
|
NEXT
|
|
PRINT '"Sequence:"
|
|
number$ = STR$(maxseed%)
|
|
FOR i% = 1 TO maxiter%
|
|
PRINT number$
|
|
number$ = FNseq(number$)
|
|
NEXT
|
|
END
|
|
|
|
DEF FNseq(n$)
|
|
LOCAL I%, o$, d%()
|
|
DIM d%(9)
|
|
FOR I% = 1 TO LEN(n$)
|
|
d%(ASCMID$(n$,I%)-&30) += 1
|
|
NEXT
|
|
FOR I% = 9 TO 0 STEP -1
|
|
IF d%(I%) o$ += STR$d%(I%) + STR$I%
|
|
NEXT
|
|
= o$
|