Post Reply 
(50G) Champernowne Sequence (OEIS A030190)
01-08-2017, 09:35 AM (This post was last modified: 06-15-2017 01:43 PM by Gene.)
Post: #1
(50G) Champernowne Sequence (OEIS A030190)
The Champernowne sequence

https://oeis.org/A030190

is the natural number sequence

https://en.wikipedia.org/wiki/ISO_80000-2

concatenated in binary & split into single digits:

0,1,1,0,1,1,1,0,0.........

For integer input N the programme returns the Nth element of the series starting from index zero.


Code:

::
  CK1&Dispatch
  BINT1
  ::
    FPTR2 ^PUSHFLAGS_
    %ABSCOERCE
    #1+
    DOBIN
    BINT64
    dostws
    BINT0
    BEGIN
    DUP
    #>HXS
    hxs>$
    LEN$
    #2-
    ROTSWAP
    2DUP
    #-
    4UNROLL
    DIFF_OR_ZERO_
    #0<>
    WHILE
    #1+
    REPEAT
    #>HXS
    hxs>$
    BINT3
    LAST$
    DUPLEN$
    FPTR2 ^POPFLAGS_
    ROTSWAP
    2DUP#>
    IT
    ::
      BINT0
      ROT
      #-SWAP
    ;
    SWAP#-
    DUP
    SUB$
    FPTR2 ^S>Z
  ;
;
Find all posts by this user
Quote this message in a reply
01-17-2017, 08:25 AM
Post: #2
RE: HP 50g: Champernowne Sequence (OEIS A030190)
An alternative algorithm is used in the programme below, having LAMBW as a sub-programme.

LAMBW returns the Lambert w function for real input & can be found here

http://www.hpmuseum.org/forum/thread-7616.html

I would be grateful for improvements to the programme & notification of any aberrant results.

Code:

  CK1&Dispatch
  BINT1
  ::
    %2
    %LN
    %2
    %/
    OVER
    %1-
    %*
    xLAMBW
    %2
    %LN
    %/
    %1+
    %CEIL
    %2
    OVER
    %^
    DUP
    4PICK
    %+
    %2
    %-
    3PICK
    %MOD
    3PICK
    %-
    %1+
    %2
    SWAP
    %^
    4UNROLL
    ROT
    %+
    %1-
    SWAP
    %/
    %1-
    %CEIL
    %*
    %FLOOR
    %2
    %MOD
  ;
;
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)