New Order #2: Turn My WayIncrementing Gray CodesGive me the Gray Code list of bit width nNew Order #1: How does this feel?Give me the Gray Code list of bit width nPrint the intersection of sequencesHarmonious “Convergence”Sylvester's sequenceIncrementing Gray CodesThe dragon Curve sequenceAlternating bit smearingJumping NumbersMake me a metasequenceNew Order #1: How does this feel?

Non-Borel set in arbitrary metric space

How can I, as DM, avoid the Conga Line of Death occurring when implementing some form of flanking rule?

What is this high flying aircraft over Pennsylvania?

Sort with assumptions

A seasonal riddle

What properties make a magic weapon befit a Rogue more than a DEX-based Fighter?

Should a narrator ever describe things based on a character's view instead of facts?

Should I be concerned about student access to a test bank?

Friend wants my recommendation but I don't want to give it to him

How to test the sharpness of a knife?

Why didn’t Eve recognize the little cockroach as a living organism?

Put the phone down / Put down the phone

What is the meaning of "You've never met a graph you didn't like?"

Do I have to take mana from my deck or hand when tapping this card?

Magnifying glass in hyperbolic space

C++ lambda syntax

What should be the ideal length of sentences in a blog post for ease of reading?

Reason why a kingside attack is not justified

Offset in split text content

Why would five hundred and five same as one?

How to split IPA spelling into syllables

Connection Between Knot Theory and Number Theory

Relations between homogeneous polynomials

How do you say "Trust your struggle." in French?



New Order #2: Turn My Way


Incrementing Gray CodesGive me the Gray Code list of bit width nNew Order #1: How does this feel?Give me the Gray Code list of bit width nPrint the intersection of sequencesHarmonious “Convergence”Sylvester's sequenceIncrementing Gray CodesThe dragon Curve sequenceAlternating bit smearingJumping NumbersMake me a metasequenceNew Order #1: How does this feel?













9












$begingroup$


Introduction (may be ignored)



Putting all positive numbers in its regular order (1, 2, 3, ...) is a bit boring, isn't it? So here is a series of challenges around permutations (reshuffelings) of all positive numbers. This is the second challenge in this series. The first challenge can be found here.



In this challenge, we use Gray codes to rearrage the natural numbers. A Gray code, or "reflected binary code" is a binary encoding in such a way that two successive values differ in only one bit. A practical application of this encoding is to use it in rotary encoders, hence my reference to "Turn My Way".



Rotary encoder for angle-measuring devices marked in 3-bit binary.



Note that this encoding leaves some degree of freedom. For example, following binary 1100, there are four possible following codes: 1101, 1110, 1000 and 0100. This is why I will define $a(n)$ as the smallest, not previously used value that differs only one character in binary encoding. This sequence corresponds with A163252.



Since this is a "pure sequence" challenge, the task is to output $a(n)$ for a given $n$ as input, where $a(n)$ is A163252.



Task



Given an integer input $n$, output $a(n)$ in integer format (not in binary format).



$a(n)$ is defined as the least positive integer not occurring earlier in the sequence such that $a(n-1)$ and $a(n)$ differ in only one bit when written in binary.



Note: 1-based indexing is assumed here; you may use 0-based indexing, so $a(0) = 1; a(1) = 3$, etc. Please mention this in your answer if you choose to use this.



Test cases



Input | Output
--------------
1 | 1
5 | 4
20 | 18
50 | 48
123 | 121
1234 | 1333
3000 | 3030
9999 | 9997


Rules



  • Input and output are integers (your program should at least support input and output in the range of 1 up to 32767)

  • Invalid input (0, floats, strings, negative values, etc.) may lead to unpredicted output, errors or (un)defined behaviour. In A163252, $a(0)$ is defined as 0. For this challenge, we will ignore this.

  • Default I/O rules apply.


  • Default loopholes are forbidden.

  • This is code-golf, so the shortest answers in bytes wins

Final note



See the following related (but not equal) PP&CG questions:



  • Finding the next Gray code (input and output in binary)

  • Generate the all Gray codes of length n









share|improve this question









$endgroup$
















    9












    $begingroup$


    Introduction (may be ignored)



    Putting all positive numbers in its regular order (1, 2, 3, ...) is a bit boring, isn't it? So here is a series of challenges around permutations (reshuffelings) of all positive numbers. This is the second challenge in this series. The first challenge can be found here.



    In this challenge, we use Gray codes to rearrage the natural numbers. A Gray code, or "reflected binary code" is a binary encoding in such a way that two successive values differ in only one bit. A practical application of this encoding is to use it in rotary encoders, hence my reference to "Turn My Way".



    Rotary encoder for angle-measuring devices marked in 3-bit binary.



    Note that this encoding leaves some degree of freedom. For example, following binary 1100, there are four possible following codes: 1101, 1110, 1000 and 0100. This is why I will define $a(n)$ as the smallest, not previously used value that differs only one character in binary encoding. This sequence corresponds with A163252.



    Since this is a "pure sequence" challenge, the task is to output $a(n)$ for a given $n$ as input, where $a(n)$ is A163252.



    Task



    Given an integer input $n$, output $a(n)$ in integer format (not in binary format).



    $a(n)$ is defined as the least positive integer not occurring earlier in the sequence such that $a(n-1)$ and $a(n)$ differ in only one bit when written in binary.



    Note: 1-based indexing is assumed here; you may use 0-based indexing, so $a(0) = 1; a(1) = 3$, etc. Please mention this in your answer if you choose to use this.



    Test cases



    Input | Output
    --------------
    1 | 1
    5 | 4
    20 | 18
    50 | 48
    123 | 121
    1234 | 1333
    3000 | 3030
    9999 | 9997


    Rules



    • Input and output are integers (your program should at least support input and output in the range of 1 up to 32767)

    • Invalid input (0, floats, strings, negative values, etc.) may lead to unpredicted output, errors or (un)defined behaviour. In A163252, $a(0)$ is defined as 0. For this challenge, we will ignore this.

    • Default I/O rules apply.


    • Default loopholes are forbidden.

    • This is code-golf, so the shortest answers in bytes wins

    Final note



    See the following related (but not equal) PP&CG questions:



    • Finding the next Gray code (input and output in binary)

    • Generate the all Gray codes of length n









    share|improve this question









    $endgroup$














      9












      9








      9





      $begingroup$


      Introduction (may be ignored)



      Putting all positive numbers in its regular order (1, 2, 3, ...) is a bit boring, isn't it? So here is a series of challenges around permutations (reshuffelings) of all positive numbers. This is the second challenge in this series. The first challenge can be found here.



      In this challenge, we use Gray codes to rearrage the natural numbers. A Gray code, or "reflected binary code" is a binary encoding in such a way that two successive values differ in only one bit. A practical application of this encoding is to use it in rotary encoders, hence my reference to "Turn My Way".



      Rotary encoder for angle-measuring devices marked in 3-bit binary.



      Note that this encoding leaves some degree of freedom. For example, following binary 1100, there are four possible following codes: 1101, 1110, 1000 and 0100. This is why I will define $a(n)$ as the smallest, not previously used value that differs only one character in binary encoding. This sequence corresponds with A163252.



      Since this is a "pure sequence" challenge, the task is to output $a(n)$ for a given $n$ as input, where $a(n)$ is A163252.



      Task



      Given an integer input $n$, output $a(n)$ in integer format (not in binary format).



      $a(n)$ is defined as the least positive integer not occurring earlier in the sequence such that $a(n-1)$ and $a(n)$ differ in only one bit when written in binary.



      Note: 1-based indexing is assumed here; you may use 0-based indexing, so $a(0) = 1; a(1) = 3$, etc. Please mention this in your answer if you choose to use this.



      Test cases



      Input | Output
      --------------
      1 | 1
      5 | 4
      20 | 18
      50 | 48
      123 | 121
      1234 | 1333
      3000 | 3030
      9999 | 9997


      Rules



      • Input and output are integers (your program should at least support input and output in the range of 1 up to 32767)

      • Invalid input (0, floats, strings, negative values, etc.) may lead to unpredicted output, errors or (un)defined behaviour. In A163252, $a(0)$ is defined as 0. For this challenge, we will ignore this.

      • Default I/O rules apply.


      • Default loopholes are forbidden.

      • This is code-golf, so the shortest answers in bytes wins

      Final note



      See the following related (but not equal) PP&CG questions:



      • Finding the next Gray code (input and output in binary)

      • Generate the all Gray codes of length n









      share|improve this question









      $endgroup$




      Introduction (may be ignored)



      Putting all positive numbers in its regular order (1, 2, 3, ...) is a bit boring, isn't it? So here is a series of challenges around permutations (reshuffelings) of all positive numbers. This is the second challenge in this series. The first challenge can be found here.



      In this challenge, we use Gray codes to rearrage the natural numbers. A Gray code, or "reflected binary code" is a binary encoding in such a way that two successive values differ in only one bit. A practical application of this encoding is to use it in rotary encoders, hence my reference to "Turn My Way".



      Rotary encoder for angle-measuring devices marked in 3-bit binary.



      Note that this encoding leaves some degree of freedom. For example, following binary 1100, there are four possible following codes: 1101, 1110, 1000 and 0100. This is why I will define $a(n)$ as the smallest, not previously used value that differs only one character in binary encoding. This sequence corresponds with A163252.



      Since this is a "pure sequence" challenge, the task is to output $a(n)$ for a given $n$ as input, where $a(n)$ is A163252.



      Task



      Given an integer input $n$, output $a(n)$ in integer format (not in binary format).



      $a(n)$ is defined as the least positive integer not occurring earlier in the sequence such that $a(n-1)$ and $a(n)$ differ in only one bit when written in binary.



      Note: 1-based indexing is assumed here; you may use 0-based indexing, so $a(0) = 1; a(1) = 3$, etc. Please mention this in your answer if you choose to use this.



      Test cases



      Input | Output
      --------------
      1 | 1
      5 | 4
      20 | 18
      50 | 48
      123 | 121
      1234 | 1333
      3000 | 3030
      9999 | 9997


      Rules



      • Input and output are integers (your program should at least support input and output in the range of 1 up to 32767)

      • Invalid input (0, floats, strings, negative values, etc.) may lead to unpredicted output, errors or (un)defined behaviour. In A163252, $a(0)$ is defined as 0. For this challenge, we will ignore this.

      • Default I/O rules apply.


      • Default loopholes are forbidden.

      • This is code-golf, so the shortest answers in bytes wins

      Final note



      See the following related (but not equal) PP&CG questions:



      • Finding the next Gray code (input and output in binary)

      • Generate the all Gray codes of length n






      code-golf sequence






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 12 hours ago









      agtoeveragtoever

      1,118419




      1,118419




















          7 Answers
          7






          active

          oldest

          votes


















          2












          $begingroup$

          JavaScript (ES6), 65 bytes



          1-indexed.





          n=>for(o=p=[k=1];o[k]


          Try it online!



          Commented



          n => // n = index of requested term
          for( // for loop:
          o = // o = storage object for the terms of the sequence
          p = // p = last term found in the sequence
          [k = 1]; // k = current term
          o[k] // end





          share|improve this answer











          $endgroup$












          • $begingroup$
            On TIO, I get a stack overflow for n > ~1024. Any suggestions on how tot deal with that in Abu other environment? Rule: "your program should at least support input and output in theorie range of 1 up tot 32767"
            $endgroup$
            – agtoever
            8 hours ago






          • 1




            $begingroup$
            @agtoever I've updated it to a non-recursive version.
            $endgroup$
            – Arnauld
            7 hours ago


















          2












          $begingroup$


          Jelly, 26 20 bytes



          ṀBLŻ2*^1ị$ḟ⁸Ṃ;
          0Ç⁸¡Ḣ


          Try it online!



          A full program that takes n as the single argument. Works for all test cases. Also note that, although not required, it handles n=0.



          Explanation



          Helper link: find next term and prepend



          Ṁ | maximum of list so far
          B | convert to binary
          L | number of binary digits
          Ż | 0..above number
          2* | 2 to the power of each of the above
          ^ | exclusive or with...
          1ị$ | ... the most recent term in the list so far
          ḟ⁸ | filter out anything used already
          Ṃ | find the minimum
          ; | prepend to existing list


          Main link



          0 | start with zero
          Ç | call the above link
          ⁸¡ | and repeat n times
          Ḣ | take the last term added





          share|improve this answer











          $endgroup$




















            1












            $begingroup$


            Wolfram Language (Mathematica), 74 bytes



            Last@Nest[#~Join~Min[BitXor[Last@#,2^Range[0,20]]~Complement~#]&,0,#]&


            Try it online!






            share|improve this answer









            $endgroup$




















              0












              $begingroup$


              Python 3.8 (pre-release), 85 bytes



              1-based indexing, really inefficient





              a=lambda n,x=0:((w:=x^(n and a(n-1)))&w-1or x in[a(i)for i in range(n)])and-~a(n,x+1)


              Try it online!






              share|improve this answer









              $endgroup$












              • $begingroup$
                Maximum input 32767 isn't supported (the default recursion depth isn't system-dependent).
                $endgroup$
                – Erik the Outgolfer
                7 hours ago


















              0












              $begingroup$


              APL (Dyalog Extended), 46 bytes





              ⍵⌷2∘(~⍺∊⍵)∧1=≢⍸≠⌿↑⌽∘⊤¨⍺,⊃⌽⍵:⍵,⍺⋄⍵∇⍨⍺+1⍣⍵⊢1


              Try it online!






              share|improve this answer









              $endgroup$




















                0












                $begingroup$


                Stax, 19 bytes



                ±↔Φd┌û╓°╡ñ|Q5┌¿Éúb≈


                Run and debug it



                It's very slow, but not nearly as slow as the 17 byte solution I was working on. I think there's still some golfing potential. I will add an explanation after I get rid of the bloat.






                share|improve this answer











                $endgroup$




















                  0












                  $begingroup$


                  Charcoal, 65 bytes



                  ≔⁰θFN«⊞υθ≔¹ηW¬‹θ⊗η≦⊗ηW∧›η¹∨¬&θη№υ⁻θη≧÷²ηW№υ⁻|θη&θη≦⊗η≔⁻|θη&θηθ»Iθ


                  Try it online! Link is to verbose version of code. Explanation:



                  ≔⁰θ


                  Initialise the result to 0.



                  FN«


                  Loop n times.



                  ⊞υθ


                  Save the previous result so that we don't use it again.



                  ≔¹ηW¬‹θ⊗η≦⊗η


                  Find the highest bit in the previous result.



                  W∧›η¹∨¬&θη№υ⁻θη≧÷²η


                  While that bit is greater than 1, if the bit is set in the previous result, try subtracting that bit to see if the result is an unseen result. This ensures that the potential results are tried in ascending order of value.



                  W№υ⁻|θη&θη≦⊗η


                  Now try XORing that bit with the previous result, doubling the bit until an unseen result is found. This handles the cases when a bit needs to be set, again in ascending order of value, but also the case when the least significant bit needs to be toggled, which the previous loop doesn't bother to test (because it's golfier to test for that here). If the previous loop found an unseen result then this loop never runs; if it didn't then this loop will uselessly retest those results.



                  ≔⁻|θη&θηθ


                  Update the result by actually XORing the bit with it.



                  »Iθ


                  Output the final result at the end of the loop.






                  share|improve this answer









                  $endgroup$












                    Your Answer





                    StackExchange.ifUsing("editor", function ()
                    return StackExchange.using("mathjaxEditing", function ()
                    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
                    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
                    );
                    );
                    , "mathjax-editing");

                    StackExchange.ifUsing("editor", function ()
                    StackExchange.using("externalEditor", function ()
                    StackExchange.using("snippets", function ()
                    StackExchange.snippets.init();
                    );
                    );
                    , "code-snippets");

                    StackExchange.ready(function()
                    var channelOptions =
                    tags: "".split(" "),
                    id: "200"
                    ;
                    initTagRenderer("".split(" "), "".split(" "), channelOptions);

                    StackExchange.using("externalEditor", function()
                    // Have to fire editor after snippets, if snippets enabled
                    if (StackExchange.settings.snippets.snippetsEnabled)
                    StackExchange.using("snippets", function()
                    createEditor();
                    );

                    else
                    createEditor();

                    );

                    function createEditor()
                    StackExchange.prepareEditor(
                    heartbeatType: 'answer',
                    autoActivateHeartbeat: false,
                    convertImagesToLinks: false,
                    noModals: true,
                    showLowRepImageUploadWarning: true,
                    reputationToPostImages: null,
                    bindNavPrevention: true,
                    postfix: "",
                    imageUploader:
                    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                    allowUrls: true
                    ,
                    onDemand: true,
                    discardSelector: ".discard-answer"
                    ,immediatelyShowMarkdownHelp:true
                    );



                    );













                    draft saved

                    draft discarded


















                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f181825%2fnew-order-2-turn-my-way%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown

























                    7 Answers
                    7






                    active

                    oldest

                    votes








                    7 Answers
                    7






                    active

                    oldest

                    votes









                    active

                    oldest

                    votes






                    active

                    oldest

                    votes









                    2












                    $begingroup$

                    JavaScript (ES6), 65 bytes



                    1-indexed.





                    n=>for(o=p=[k=1];o[k]


                    Try it online!



                    Commented



                    n => // n = index of requested term
                    for( // for loop:
                    o = // o = storage object for the terms of the sequence
                    p = // p = last term found in the sequence
                    [k = 1]; // k = current term
                    o[k] // end





                    share|improve this answer











                    $endgroup$












                    • $begingroup$
                      On TIO, I get a stack overflow for n > ~1024. Any suggestions on how tot deal with that in Abu other environment? Rule: "your program should at least support input and output in theorie range of 1 up tot 32767"
                      $endgroup$
                      – agtoever
                      8 hours ago






                    • 1




                      $begingroup$
                      @agtoever I've updated it to a non-recursive version.
                      $endgroup$
                      – Arnauld
                      7 hours ago















                    2












                    $begingroup$

                    JavaScript (ES6), 65 bytes



                    1-indexed.





                    n=>for(o=p=[k=1];o[k]


                    Try it online!



                    Commented



                    n => // n = index of requested term
                    for( // for loop:
                    o = // o = storage object for the terms of the sequence
                    p = // p = last term found in the sequence
                    [k = 1]; // k = current term
                    o[k] // end





                    share|improve this answer











                    $endgroup$












                    • $begingroup$
                      On TIO, I get a stack overflow for n > ~1024. Any suggestions on how tot deal with that in Abu other environment? Rule: "your program should at least support input and output in theorie range of 1 up tot 32767"
                      $endgroup$
                      – agtoever
                      8 hours ago






                    • 1




                      $begingroup$
                      @agtoever I've updated it to a non-recursive version.
                      $endgroup$
                      – Arnauld
                      7 hours ago













                    2












                    2








                    2





                    $begingroup$

                    JavaScript (ES6), 65 bytes



                    1-indexed.





                    n=>for(o=p=[k=1];o[k]


                    Try it online!



                    Commented



                    n => // n = index of requested term
                    for( // for loop:
                    o = // o = storage object for the terms of the sequence
                    p = // p = last term found in the sequence
                    [k = 1]; // k = current term
                    o[k] // end





                    share|improve this answer











                    $endgroup$



                    JavaScript (ES6), 65 bytes



                    1-indexed.





                    n=>for(o=p=[k=1];o[k]


                    Try it online!



                    Commented



                    n => // n = index of requested term
                    for( // for loop:
                    o = // o = storage object for the terms of the sequence
                    p = // p = last term found in the sequence
                    [k = 1]; // k = current term
                    o[k] // end






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited 7 hours ago

























                    answered 11 hours ago









                    ArnauldArnauld

                    79.2k796330




                    79.2k796330











                    • $begingroup$
                      On TIO, I get a stack overflow for n > ~1024. Any suggestions on how tot deal with that in Abu other environment? Rule: "your program should at least support input and output in theorie range of 1 up tot 32767"
                      $endgroup$
                      – agtoever
                      8 hours ago






                    • 1




                      $begingroup$
                      @agtoever I've updated it to a non-recursive version.
                      $endgroup$
                      – Arnauld
                      7 hours ago
















                    • $begingroup$
                      On TIO, I get a stack overflow for n > ~1024. Any suggestions on how tot deal with that in Abu other environment? Rule: "your program should at least support input and output in theorie range of 1 up tot 32767"
                      $endgroup$
                      – agtoever
                      8 hours ago






                    • 1




                      $begingroup$
                      @agtoever I've updated it to a non-recursive version.
                      $endgroup$
                      – Arnauld
                      7 hours ago















                    $begingroup$
                    On TIO, I get a stack overflow for n > ~1024. Any suggestions on how tot deal with that in Abu other environment? Rule: "your program should at least support input and output in theorie range of 1 up tot 32767"
                    $endgroup$
                    – agtoever
                    8 hours ago




                    $begingroup$
                    On TIO, I get a stack overflow for n > ~1024. Any suggestions on how tot deal with that in Abu other environment? Rule: "your program should at least support input and output in theorie range of 1 up tot 32767"
                    $endgroup$
                    – agtoever
                    8 hours ago




                    1




                    1




                    $begingroup$
                    @agtoever I've updated it to a non-recursive version.
                    $endgroup$
                    – Arnauld
                    7 hours ago




                    $begingroup$
                    @agtoever I've updated it to a non-recursive version.
                    $endgroup$
                    – Arnauld
                    7 hours ago











                    2












                    $begingroup$


                    Jelly, 26 20 bytes



                    ṀBLŻ2*^1ị$ḟ⁸Ṃ;
                    0Ç⁸¡Ḣ


                    Try it online!



                    A full program that takes n as the single argument. Works for all test cases. Also note that, although not required, it handles n=0.



                    Explanation



                    Helper link: find next term and prepend



                    Ṁ | maximum of list so far
                    B | convert to binary
                    L | number of binary digits
                    Ż | 0..above number
                    2* | 2 to the power of each of the above
                    ^ | exclusive or with...
                    1ị$ | ... the most recent term in the list so far
                    ḟ⁸ | filter out anything used already
                    Ṃ | find the minimum
                    ; | prepend to existing list


                    Main link



                    0 | start with zero
                    Ç | call the above link
                    ⁸¡ | and repeat n times
                    Ḣ | take the last term added





                    share|improve this answer











                    $endgroup$

















                      2












                      $begingroup$


                      Jelly, 26 20 bytes



                      ṀBLŻ2*^1ị$ḟ⁸Ṃ;
                      0Ç⁸¡Ḣ


                      Try it online!



                      A full program that takes n as the single argument. Works for all test cases. Also note that, although not required, it handles n=0.



                      Explanation



                      Helper link: find next term and prepend



                      Ṁ | maximum of list so far
                      B | convert to binary
                      L | number of binary digits
                      Ż | 0..above number
                      2* | 2 to the power of each of the above
                      ^ | exclusive or with...
                      1ị$ | ... the most recent term in the list so far
                      ḟ⁸ | filter out anything used already
                      Ṃ | find the minimum
                      ; | prepend to existing list


                      Main link



                      0 | start with zero
                      Ç | call the above link
                      ⁸¡ | and repeat n times
                      Ḣ | take the last term added





                      share|improve this answer











                      $endgroup$















                        2












                        2








                        2





                        $begingroup$


                        Jelly, 26 20 bytes



                        ṀBLŻ2*^1ị$ḟ⁸Ṃ;
                        0Ç⁸¡Ḣ


                        Try it online!



                        A full program that takes n as the single argument. Works for all test cases. Also note that, although not required, it handles n=0.



                        Explanation



                        Helper link: find next term and prepend



                        Ṁ | maximum of list so far
                        B | convert to binary
                        L | number of binary digits
                        Ż | 0..above number
                        2* | 2 to the power of each of the above
                        ^ | exclusive or with...
                        1ị$ | ... the most recent term in the list so far
                        ḟ⁸ | filter out anything used already
                        Ṃ | find the minimum
                        ; | prepend to existing list


                        Main link



                        0 | start with zero
                        Ç | call the above link
                        ⁸¡ | and repeat n times
                        Ḣ | take the last term added





                        share|improve this answer











                        $endgroup$




                        Jelly, 26 20 bytes



                        ṀBLŻ2*^1ị$ḟ⁸Ṃ;
                        0Ç⁸¡Ḣ


                        Try it online!



                        A full program that takes n as the single argument. Works for all test cases. Also note that, although not required, it handles n=0.



                        Explanation



                        Helper link: find next term and prepend



                        Ṁ | maximum of list so far
                        B | convert to binary
                        L | number of binary digits
                        Ż | 0..above number
                        2* | 2 to the power of each of the above
                        ^ | exclusive or with...
                        1ị$ | ... the most recent term in the list so far
                        ḟ⁸ | filter out anything used already
                        Ṃ | find the minimum
                        ; | prepend to existing list


                        Main link



                        0 | start with zero
                        Ç | call the above link
                        ⁸¡ | and repeat n times
                        Ḣ | take the last term added






                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 5 hours ago

























                        answered 8 hours ago









                        Nick KennedyNick Kennedy

                        80137




                        80137





















                            1












                            $begingroup$


                            Wolfram Language (Mathematica), 74 bytes



                            Last@Nest[#~Join~Min[BitXor[Last@#,2^Range[0,20]]~Complement~#]&,0,#]&


                            Try it online!






                            share|improve this answer









                            $endgroup$

















                              1












                              $begingroup$


                              Wolfram Language (Mathematica), 74 bytes



                              Last@Nest[#~Join~Min[BitXor[Last@#,2^Range[0,20]]~Complement~#]&,0,#]&


                              Try it online!






                              share|improve this answer









                              $endgroup$















                                1












                                1








                                1





                                $begingroup$


                                Wolfram Language (Mathematica), 74 bytes



                                Last@Nest[#~Join~Min[BitXor[Last@#,2^Range[0,20]]~Complement~#]&,0,#]&


                                Try it online!






                                share|improve this answer









                                $endgroup$




                                Wolfram Language (Mathematica), 74 bytes



                                Last@Nest[#~Join~Min[BitXor[Last@#,2^Range[0,20]]~Complement~#]&,0,#]&


                                Try it online!







                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered 7 hours ago









                                J42161217J42161217

                                13.3k21251




                                13.3k21251





















                                    0












                                    $begingroup$


                                    Python 3.8 (pre-release), 85 bytes



                                    1-based indexing, really inefficient





                                    a=lambda n,x=0:((w:=x^(n and a(n-1)))&w-1or x in[a(i)for i in range(n)])and-~a(n,x+1)


                                    Try it online!






                                    share|improve this answer









                                    $endgroup$












                                    • $begingroup$
                                      Maximum input 32767 isn't supported (the default recursion depth isn't system-dependent).
                                      $endgroup$
                                      – Erik the Outgolfer
                                      7 hours ago















                                    0












                                    $begingroup$


                                    Python 3.8 (pre-release), 85 bytes



                                    1-based indexing, really inefficient





                                    a=lambda n,x=0:((w:=x^(n and a(n-1)))&w-1or x in[a(i)for i in range(n)])and-~a(n,x+1)


                                    Try it online!






                                    share|improve this answer









                                    $endgroup$












                                    • $begingroup$
                                      Maximum input 32767 isn't supported (the default recursion depth isn't system-dependent).
                                      $endgroup$
                                      – Erik the Outgolfer
                                      7 hours ago













                                    0












                                    0








                                    0





                                    $begingroup$


                                    Python 3.8 (pre-release), 85 bytes



                                    1-based indexing, really inefficient





                                    a=lambda n,x=0:((w:=x^(n and a(n-1)))&w-1or x in[a(i)for i in range(n)])and-~a(n,x+1)


                                    Try it online!






                                    share|improve this answer









                                    $endgroup$




                                    Python 3.8 (pre-release), 85 bytes



                                    1-based indexing, really inefficient





                                    a=lambda n,x=0:((w:=x^(n and a(n-1)))&w-1or x in[a(i)for i in range(n)])and-~a(n,x+1)


                                    Try it online!







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered 8 hours ago









                                    ovsovs

                                    19.3k21160




                                    19.3k21160











                                    • $begingroup$
                                      Maximum input 32767 isn't supported (the default recursion depth isn't system-dependent).
                                      $endgroup$
                                      – Erik the Outgolfer
                                      7 hours ago
















                                    • $begingroup$
                                      Maximum input 32767 isn't supported (the default recursion depth isn't system-dependent).
                                      $endgroup$
                                      – Erik the Outgolfer
                                      7 hours ago















                                    $begingroup$
                                    Maximum input 32767 isn't supported (the default recursion depth isn't system-dependent).
                                    $endgroup$
                                    – Erik the Outgolfer
                                    7 hours ago




                                    $begingroup$
                                    Maximum input 32767 isn't supported (the default recursion depth isn't system-dependent).
                                    $endgroup$
                                    – Erik the Outgolfer
                                    7 hours ago











                                    0












                                    $begingroup$


                                    APL (Dyalog Extended), 46 bytes





                                    ⍵⌷2∘(~⍺∊⍵)∧1=≢⍸≠⌿↑⌽∘⊤¨⍺,⊃⌽⍵:⍵,⍺⋄⍵∇⍨⍺+1⍣⍵⊢1


                                    Try it online!






                                    share|improve this answer









                                    $endgroup$

















                                      0












                                      $begingroup$


                                      APL (Dyalog Extended), 46 bytes





                                      ⍵⌷2∘(~⍺∊⍵)∧1=≢⍸≠⌿↑⌽∘⊤¨⍺,⊃⌽⍵:⍵,⍺⋄⍵∇⍨⍺+1⍣⍵⊢1


                                      Try it online!






                                      share|improve this answer









                                      $endgroup$















                                        0












                                        0








                                        0





                                        $begingroup$


                                        APL (Dyalog Extended), 46 bytes





                                        ⍵⌷2∘(~⍺∊⍵)∧1=≢⍸≠⌿↑⌽∘⊤¨⍺,⊃⌽⍵:⍵,⍺⋄⍵∇⍨⍺+1⍣⍵⊢1


                                        Try it online!






                                        share|improve this answer









                                        $endgroup$




                                        APL (Dyalog Extended), 46 bytes





                                        ⍵⌷2∘(~⍺∊⍵)∧1=≢⍸≠⌿↑⌽∘⊤¨⍺,⊃⌽⍵:⍵,⍺⋄⍵∇⍨⍺+1⍣⍵⊢1


                                        Try it online!







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 6 hours ago









                                        voidhawkvoidhawk

                                        1,31115




                                        1,31115





















                                            0












                                            $begingroup$


                                            Stax, 19 bytes



                                            ±↔Φd┌û╓°╡ñ|Q5┌¿Éúb≈


                                            Run and debug it



                                            It's very slow, but not nearly as slow as the 17 byte solution I was working on. I think there's still some golfing potential. I will add an explanation after I get rid of the bloat.






                                            share|improve this answer











                                            $endgroup$

















                                              0












                                              $begingroup$


                                              Stax, 19 bytes



                                              ±↔Φd┌û╓°╡ñ|Q5┌¿Éúb≈


                                              Run and debug it



                                              It's very slow, but not nearly as slow as the 17 byte solution I was working on. I think there's still some golfing potential. I will add an explanation after I get rid of the bloat.






                                              share|improve this answer











                                              $endgroup$















                                                0












                                                0








                                                0





                                                $begingroup$


                                                Stax, 19 bytes



                                                ±↔Φd┌û╓°╡ñ|Q5┌¿Éúb≈


                                                Run and debug it



                                                It's very slow, but not nearly as slow as the 17 byte solution I was working on. I think there's still some golfing potential. I will add an explanation after I get rid of the bloat.






                                                share|improve this answer











                                                $endgroup$




                                                Stax, 19 bytes



                                                ±↔Φd┌û╓°╡ñ|Q5┌¿Éúb≈


                                                Run and debug it



                                                It's very slow, but not nearly as slow as the 17 byte solution I was working on. I think there's still some golfing potential. I will add an explanation after I get rid of the bloat.







                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited 5 hours ago

























                                                answered 5 hours ago









                                                recursiverecursive

                                                5,5691322




                                                5,5691322





















                                                    0












                                                    $begingroup$


                                                    Charcoal, 65 bytes



                                                    ≔⁰θFN«⊞υθ≔¹ηW¬‹θ⊗η≦⊗ηW∧›η¹∨¬&θη№υ⁻θη≧÷²ηW№υ⁻|θη&θη≦⊗η≔⁻|θη&θηθ»Iθ


                                                    Try it online! Link is to verbose version of code. Explanation:



                                                    ≔⁰θ


                                                    Initialise the result to 0.



                                                    FN«


                                                    Loop n times.



                                                    ⊞υθ


                                                    Save the previous result so that we don't use it again.



                                                    ≔¹ηW¬‹θ⊗η≦⊗η


                                                    Find the highest bit in the previous result.



                                                    W∧›η¹∨¬&θη№υ⁻θη≧÷²η


                                                    While that bit is greater than 1, if the bit is set in the previous result, try subtracting that bit to see if the result is an unseen result. This ensures that the potential results are tried in ascending order of value.



                                                    W№υ⁻|θη&θη≦⊗η


                                                    Now try XORing that bit with the previous result, doubling the bit until an unseen result is found. This handles the cases when a bit needs to be set, again in ascending order of value, but also the case when the least significant bit needs to be toggled, which the previous loop doesn't bother to test (because it's golfier to test for that here). If the previous loop found an unseen result then this loop never runs; if it didn't then this loop will uselessly retest those results.



                                                    ≔⁻|θη&θηθ


                                                    Update the result by actually XORing the bit with it.



                                                    »Iθ


                                                    Output the final result at the end of the loop.






                                                    share|improve this answer









                                                    $endgroup$

















                                                      0












                                                      $begingroup$


                                                      Charcoal, 65 bytes



                                                      ≔⁰θFN«⊞υθ≔¹ηW¬‹θ⊗η≦⊗ηW∧›η¹∨¬&θη№υ⁻θη≧÷²ηW№υ⁻|θη&θη≦⊗η≔⁻|θη&θηθ»Iθ


                                                      Try it online! Link is to verbose version of code. Explanation:



                                                      ≔⁰θ


                                                      Initialise the result to 0.



                                                      FN«


                                                      Loop n times.



                                                      ⊞υθ


                                                      Save the previous result so that we don't use it again.



                                                      ≔¹ηW¬‹θ⊗η≦⊗η


                                                      Find the highest bit in the previous result.



                                                      W∧›η¹∨¬&θη№υ⁻θη≧÷²η


                                                      While that bit is greater than 1, if the bit is set in the previous result, try subtracting that bit to see if the result is an unseen result. This ensures that the potential results are tried in ascending order of value.



                                                      W№υ⁻|θη&θη≦⊗η


                                                      Now try XORing that bit with the previous result, doubling the bit until an unseen result is found. This handles the cases when a bit needs to be set, again in ascending order of value, but also the case when the least significant bit needs to be toggled, which the previous loop doesn't bother to test (because it's golfier to test for that here). If the previous loop found an unseen result then this loop never runs; if it didn't then this loop will uselessly retest those results.



                                                      ≔⁻|θη&θηθ


                                                      Update the result by actually XORing the bit with it.



                                                      »Iθ


                                                      Output the final result at the end of the loop.






                                                      share|improve this answer









                                                      $endgroup$















                                                        0












                                                        0








                                                        0





                                                        $begingroup$


                                                        Charcoal, 65 bytes



                                                        ≔⁰θFN«⊞υθ≔¹ηW¬‹θ⊗η≦⊗ηW∧›η¹∨¬&θη№υ⁻θη≧÷²ηW№υ⁻|θη&θη≦⊗η≔⁻|θη&θηθ»Iθ


                                                        Try it online! Link is to verbose version of code. Explanation:



                                                        ≔⁰θ


                                                        Initialise the result to 0.



                                                        FN«


                                                        Loop n times.



                                                        ⊞υθ


                                                        Save the previous result so that we don't use it again.



                                                        ≔¹ηW¬‹θ⊗η≦⊗η


                                                        Find the highest bit in the previous result.



                                                        W∧›η¹∨¬&θη№υ⁻θη≧÷²η


                                                        While that bit is greater than 1, if the bit is set in the previous result, try subtracting that bit to see if the result is an unseen result. This ensures that the potential results are tried in ascending order of value.



                                                        W№υ⁻|θη&θη≦⊗η


                                                        Now try XORing that bit with the previous result, doubling the bit until an unseen result is found. This handles the cases when a bit needs to be set, again in ascending order of value, but also the case when the least significant bit needs to be toggled, which the previous loop doesn't bother to test (because it's golfier to test for that here). If the previous loop found an unseen result then this loop never runs; if it didn't then this loop will uselessly retest those results.



                                                        ≔⁻|θη&θηθ


                                                        Update the result by actually XORing the bit with it.



                                                        »Iθ


                                                        Output the final result at the end of the loop.






                                                        share|improve this answer









                                                        $endgroup$




                                                        Charcoal, 65 bytes



                                                        ≔⁰θFN«⊞υθ≔¹ηW¬‹θ⊗η≦⊗ηW∧›η¹∨¬&θη№υ⁻θη≧÷²ηW№υ⁻|θη&θη≦⊗η≔⁻|θη&θηθ»Iθ


                                                        Try it online! Link is to verbose version of code. Explanation:



                                                        ≔⁰θ


                                                        Initialise the result to 0.



                                                        FN«


                                                        Loop n times.



                                                        ⊞υθ


                                                        Save the previous result so that we don't use it again.



                                                        ≔¹ηW¬‹θ⊗η≦⊗η


                                                        Find the highest bit in the previous result.



                                                        W∧›η¹∨¬&θη№υ⁻θη≧÷²η


                                                        While that bit is greater than 1, if the bit is set in the previous result, try subtracting that bit to see if the result is an unseen result. This ensures that the potential results are tried in ascending order of value.



                                                        W№υ⁻|θη&θη≦⊗η


                                                        Now try XORing that bit with the previous result, doubling the bit until an unseen result is found. This handles the cases when a bit needs to be set, again in ascending order of value, but also the case when the least significant bit needs to be toggled, which the previous loop doesn't bother to test (because it's golfier to test for that here). If the previous loop found an unseen result then this loop never runs; if it didn't then this loop will uselessly retest those results.



                                                        ≔⁻|θη&θηθ


                                                        Update the result by actually XORing the bit with it.



                                                        »Iθ


                                                        Output the final result at the end of the loop.







                                                        share|improve this answer












                                                        share|improve this answer



                                                        share|improve this answer










                                                        answered 5 hours ago









                                                        NeilNeil

                                                        81.8k745178




                                                        81.8k745178



























                                                            draft saved

                                                            draft discarded
















































                                                            If this is an answer to a challenge…



                                                            • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                            • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                              Explanations of your answer make it more interesting to read and are very much encouraged.


                                                            • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                                            More generally…



                                                            • …Please make sure to answer the question and provide sufficient detail.


                                                            • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                                            draft saved


                                                            draft discarded














                                                            StackExchange.ready(
                                                            function ()
                                                            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f181825%2fnew-order-2-turn-my-way%23new-answer', 'question_page');

                                                            );

                                                            Post as a guest















                                                            Required, but never shown





















































                                                            Required, but never shown














                                                            Required, but never shown












                                                            Required, but never shown







                                                            Required, but never shown

































                                                            Required, but never shown














                                                            Required, but never shown












                                                            Required, but never shown







                                                            Required, but never shown







                                                            Popular posts from this blog

                                                            How to create a command for the “strange m” symbol in latex? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)How do you make your own symbol when Detexify fails?Writing bold small caps with mathpazo packageplus-minus symbol with parenthesis around the minus signGreek character in Beamer document titleHow to create dashed right arrow over symbol?Currency symbol: Turkish LiraDouble prec as a single symbol?Plus Sign Too Big; How to Call adfbullet?Is there a TeX macro for three-legged pi?How do I get my integral-like symbol to align like the integral?How to selectively substitute a letter with another symbol representing the same letterHow do I generate a less than symbol and vertical bar that are the same height?

                                                            Българска екзархия Съдържание История | Български екзарси | Вижте също | Външни препратки | Литература | Бележки | НавигацияУстав за управлението на българската екзархия. Цариград, 1870Слово на Ловешкия митрополит Иларион при откриването на Българския народен събор в Цариград на 23. II. 1870 г.Българската правда и гръцката кривда. От С. М. (= Софийски Мелетий). Цариград, 1872Предстоятели на Българската екзархияПодмененият ВеликденИнформационна агенция „Фокус“Димитър Ризов. Българите в техните исторически, етнографически и политически граници (Атлас съдържащ 40 карти). Berlin, Königliche Hoflithographie, Hof-Buch- und -Steindruckerei Wilhelm Greve, 1917Report of the International Commission to Inquire into the Causes and Conduct of the Balkan Wars

                                                            Чепеларе Съдържание География | История | Население | Спортни и природни забележителности | Културни и исторически обекти | Религии | Обществени институции | Известни личности | Редовни събития | Галерия | Източници | Литература | Външни препратки | Навигация41°43′23.99″ с. ш. 24°41′09.99″ и. д. / 41.723333° с. ш. 24.686111° и. д.*ЧепелареЧепеларски Linux fest 2002Начало на Зимен сезон 2005/06Национални хайдушки празници „Капитан Петко Войвода“Град ЧепелареЧепеларе – народният ски курортbgrod.orgwww.terranatura.hit.bgСправка за населението на гр. Исперих, общ. Исперих, обл. РазградМузей на родопския карстМузей на спорта и скитеЧепеларебългарскибългарскианглийскитукИстория на градаСки писти в ЧепелареВремето в ЧепелареРадио и телевизия в ЧепелареЧепеларе мами с родопски чар и добри пистиЕвтин туризъм и снежни атракции в ЧепелареМестоположениеИнформация и снимки от музея на родопския карст3D панорами от ЧепелареЧепелареррр