login
A266405
Start with a(1) = 1, then always choose for a(n) the least unused number such that A002487(a(n)*a(n-1)) = A002487(a(n)) * A002487(a(n-1)), where A002487 is Stern-Brocot sequence.
5
1, 2, 3, 4, 5, 7, 8, 6, 9, 10, 14, 16, 11, 17, 13, 12, 18, 15, 26, 24, 23, 19, 32, 20, 28, 34, 22, 27, 33, 29, 31, 25, 45, 49, 36, 30, 52, 48, 35, 64, 21, 69, 42, 128, 37, 256, 38, 46, 66, 54, 41, 83, 82, 108, 44, 39, 88, 68, 56, 40, 55, 65, 47, 130, 59, 96, 51, 192, 70, 72, 60, 104, 71, 80, 57, 63, 61, 126, 98, 90, 50, 62, 58, 124, 100, 121, 127
OFFSET
1,2
COMMENTS
This is a permutation of natural numbers for the same reason that A266195 and A266351 are. If nothing else works for the value of next a(n), then at least the next unused power of 2 will save the sequence from dying, and will also immediately pick up as its succeeding pair the least term not used so far. This follows because A002487(2^m) = 1 and A002487(2^m * n) = A002487(n) for all n and m.
Still, it would be nice to know when 149 will appear in the sequence.
PROG
(Scheme, with defineperm1-macro from Antti Karttunen's IntSeq-library)
(defineperm1 (A266405 n) (cond ((= 1 n) n) (else (let ((prev (A266405 (- n 1)))) (let loop ((k 1)) (cond ((and (not-lte? (A266406 k) (- n 1)) (= (A002487 (* k prev)) (* (A002487 k) (A002487 prev)))) k) (else (loop (+ 1 k)))))))))
(define (A266406 n) (A266405 (- n))) ;; This returns inverse values of A266405 from its hidden cache that defineperm1-macro has prepared. #f is returned for those n that have not yet been encountered.
;; We consider a > b (i.e. not less than b) also in case a is #f.
;; (Because of the stateful caching system used by defineperm1-macro):
(define (not-lte? a b) (cond ((not (number? a)) #t) (else (> a b))))
CROSSREFS
Inverse: A266406.
Cf. A002487.
Cf. A266195, A266351, A265405 (for sequences with similar definitions).
Sequence in context: A131149 A131154 A130994 * A295087 A306010 A162375
KEYWORD
nonn
AUTHOR
Antti Karttunen, Dec 29 2015
STATUS
approved