Source permutation












6












$begingroup$


A permutation of a set $S = {s_1, s_2, dotsc, s_n}$ is a bijective function $pi: S to S$. For example, if $S = {1,2,3,4}$ then the function $pi: x mapsto 1 + (x + 1 mod 4)$ is a permutation:



$$
pi(1) = 3,quad
pi(2) = 4,quad
pi(3) = 1,quad
pi(4) = 2
$$



We can also have permutations on infinite sets, let's take $mathbb{N}$ as an example: The function $pi: x mapsto x-1 + 2cdot(x mod 2)$ is a permutation, swapping the odd and even integers in blocks of two. The first elements are as follows:



$$
2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,dotsc
$$



Challenge



Your task for this challenge is to write a function/program implementing any1 permutation on the positive natural numbers. The score of your solution is the sum of codepoints after mapping them with the implemented permutation.



Example



Suppose we take the above permutation implemented with Python:





def pi(x):
return x - 1 + 2*(x % 2)


Try it online!



The character d has codepoint $100$, $texttt{pi}(100) = 99$. If we do this for every character, we get:



$$
99,102,101,31,111,106,39,119,42,57,9,31,31,31,31,113,102,115,118,113,109,31,119,31,46,31,50,31,44,31,49,41,39,119,31,38,31,49,42
$$



The sum of all these mapped characters is $2463$, this would be the score for that function.



Rules



You will implement a permutation $pi$ either as a function or program




  • given an natural number $x$, return/output $pi(x)$

  • for the purpose of this challenge $mathbb{N}$ does not contain $0$

  • the permutation must non-trivially permute an infinite subset of $mathbb{N}$

  • your function/program is not allowed to read its own source


Scoring



The score is given by the sum of all codepoints (zero bytes may not be part of the source code) under that permutation (the codepoints depend on your language2, you're free to use SBCS, UTF-8 etc. as long as your language supports it).



The submission with the lowest score wins, ties are broken by earliest submission.





1: Except for permutations which only permute a finite subset of $mathbb{N}$, meaning that the set ${ x | pi(x) neq x }$ must be infinite.



2: If it improves your score, you can for example use a UTF-8 encoded Jelly submission instead of the usual SBCS.










share|improve this question











$endgroup$












  • $begingroup$
    {s1..sn} (from who build every permutations) are in input? I would remember that a permutation is just one function {1..n}->{s1...sn} injective and on all the set of arrive
    $endgroup$
    – RosLuP
    8 hours ago












  • $begingroup$
    Can we read our own source code? Or should we abide by quine rules?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    By non-trivially permute do you mean you just can't do 1,2,3...* or that you also can't do stuff like 2,1,3,4...*?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    Does x->x count?
    $endgroup$
    – Embodiment of Ignorance
    1 hour ago






  • 1




    $begingroup$
    @JoKing "zero bytes may not be part of the source code" re: the second question
    $endgroup$
    – ASCII-only
    38 mins ago


















6












$begingroup$


A permutation of a set $S = {s_1, s_2, dotsc, s_n}$ is a bijective function $pi: S to S$. For example, if $S = {1,2,3,4}$ then the function $pi: x mapsto 1 + (x + 1 mod 4)$ is a permutation:



$$
pi(1) = 3,quad
pi(2) = 4,quad
pi(3) = 1,quad
pi(4) = 2
$$



We can also have permutations on infinite sets, let's take $mathbb{N}$ as an example: The function $pi: x mapsto x-1 + 2cdot(x mod 2)$ is a permutation, swapping the odd and even integers in blocks of two. The first elements are as follows:



$$
2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,dotsc
$$



Challenge



Your task for this challenge is to write a function/program implementing any1 permutation on the positive natural numbers. The score of your solution is the sum of codepoints after mapping them with the implemented permutation.



Example



Suppose we take the above permutation implemented with Python:





def pi(x):
return x - 1 + 2*(x % 2)


Try it online!



The character d has codepoint $100$, $texttt{pi}(100) = 99$. If we do this for every character, we get:



$$
99,102,101,31,111,106,39,119,42,57,9,31,31,31,31,113,102,115,118,113,109,31,119,31,46,31,50,31,44,31,49,41,39,119,31,38,31,49,42
$$



The sum of all these mapped characters is $2463$, this would be the score for that function.



Rules



You will implement a permutation $pi$ either as a function or program




  • given an natural number $x$, return/output $pi(x)$

  • for the purpose of this challenge $mathbb{N}$ does not contain $0$

  • the permutation must non-trivially permute an infinite subset of $mathbb{N}$

  • your function/program is not allowed to read its own source


Scoring



The score is given by the sum of all codepoints (zero bytes may not be part of the source code) under that permutation (the codepoints depend on your language2, you're free to use SBCS, UTF-8 etc. as long as your language supports it).



The submission with the lowest score wins, ties are broken by earliest submission.





1: Except for permutations which only permute a finite subset of $mathbb{N}$, meaning that the set ${ x | pi(x) neq x }$ must be infinite.



2: If it improves your score, you can for example use a UTF-8 encoded Jelly submission instead of the usual SBCS.










share|improve this question











$endgroup$












  • $begingroup$
    {s1..sn} (from who build every permutations) are in input? I would remember that a permutation is just one function {1..n}->{s1...sn} injective and on all the set of arrive
    $endgroup$
    – RosLuP
    8 hours ago












  • $begingroup$
    Can we read our own source code? Or should we abide by quine rules?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    By non-trivially permute do you mean you just can't do 1,2,3...* or that you also can't do stuff like 2,1,3,4...*?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    Does x->x count?
    $endgroup$
    – Embodiment of Ignorance
    1 hour ago






  • 1




    $begingroup$
    @JoKing "zero bytes may not be part of the source code" re: the second question
    $endgroup$
    – ASCII-only
    38 mins ago
















6












6








6





$begingroup$


A permutation of a set $S = {s_1, s_2, dotsc, s_n}$ is a bijective function $pi: S to S$. For example, if $S = {1,2,3,4}$ then the function $pi: x mapsto 1 + (x + 1 mod 4)$ is a permutation:



$$
pi(1) = 3,quad
pi(2) = 4,quad
pi(3) = 1,quad
pi(4) = 2
$$



We can also have permutations on infinite sets, let's take $mathbb{N}$ as an example: The function $pi: x mapsto x-1 + 2cdot(x mod 2)$ is a permutation, swapping the odd and even integers in blocks of two. The first elements are as follows:



$$
2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,dotsc
$$



Challenge



Your task for this challenge is to write a function/program implementing any1 permutation on the positive natural numbers. The score of your solution is the sum of codepoints after mapping them with the implemented permutation.



Example



Suppose we take the above permutation implemented with Python:





def pi(x):
return x - 1 + 2*(x % 2)


Try it online!



The character d has codepoint $100$, $texttt{pi}(100) = 99$. If we do this for every character, we get:



$$
99,102,101,31,111,106,39,119,42,57,9,31,31,31,31,113,102,115,118,113,109,31,119,31,46,31,50,31,44,31,49,41,39,119,31,38,31,49,42
$$



The sum of all these mapped characters is $2463$, this would be the score for that function.



Rules



You will implement a permutation $pi$ either as a function or program




  • given an natural number $x$, return/output $pi(x)$

  • for the purpose of this challenge $mathbb{N}$ does not contain $0$

  • the permutation must non-trivially permute an infinite subset of $mathbb{N}$

  • your function/program is not allowed to read its own source


Scoring



The score is given by the sum of all codepoints (zero bytes may not be part of the source code) under that permutation (the codepoints depend on your language2, you're free to use SBCS, UTF-8 etc. as long as your language supports it).



The submission with the lowest score wins, ties are broken by earliest submission.





1: Except for permutations which only permute a finite subset of $mathbb{N}$, meaning that the set ${ x | pi(x) neq x }$ must be infinite.



2: If it improves your score, you can for example use a UTF-8 encoded Jelly submission instead of the usual SBCS.










share|improve this question











$endgroup$




A permutation of a set $S = {s_1, s_2, dotsc, s_n}$ is a bijective function $pi: S to S$. For example, if $S = {1,2,3,4}$ then the function $pi: x mapsto 1 + (x + 1 mod 4)$ is a permutation:



$$
pi(1) = 3,quad
pi(2) = 4,quad
pi(3) = 1,quad
pi(4) = 2
$$



We can also have permutations on infinite sets, let's take $mathbb{N}$ as an example: The function $pi: x mapsto x-1 + 2cdot(x mod 2)$ is a permutation, swapping the odd and even integers in blocks of two. The first elements are as follows:



$$
2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,dotsc
$$



Challenge



Your task for this challenge is to write a function/program implementing any1 permutation on the positive natural numbers. The score of your solution is the sum of codepoints after mapping them with the implemented permutation.



Example



Suppose we take the above permutation implemented with Python:





def pi(x):
return x - 1 + 2*(x % 2)


Try it online!



The character d has codepoint $100$, $texttt{pi}(100) = 99$. If we do this for every character, we get:



$$
99,102,101,31,111,106,39,119,42,57,9,31,31,31,31,113,102,115,118,113,109,31,119,31,46,31,50,31,44,31,49,41,39,119,31,38,31,49,42
$$



The sum of all these mapped characters is $2463$, this would be the score for that function.



Rules



You will implement a permutation $pi$ either as a function or program




  • given an natural number $x$, return/output $pi(x)$

  • for the purpose of this challenge $mathbb{N}$ does not contain $0$

  • the permutation must non-trivially permute an infinite subset of $mathbb{N}$

  • your function/program is not allowed to read its own source


Scoring



The score is given by the sum of all codepoints (zero bytes may not be part of the source code) under that permutation (the codepoints depend on your language2, you're free to use SBCS, UTF-8 etc. as long as your language supports it).



The submission with the lowest score wins, ties are broken by earliest submission.





1: Except for permutations which only permute a finite subset of $mathbb{N}$, meaning that the set ${ x | pi(x) neq x }$ must be infinite.



2: If it improves your score, you can for example use a UTF-8 encoded Jelly submission instead of the usual SBCS.







code-challenge sequence integer permutations self-referential






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 1 hour ago









Embodiment of Ignorance

1,548124




1,548124










asked 9 hours ago









ბიმობიმო

11.9k22392




11.9k22392












  • $begingroup$
    {s1..sn} (from who build every permutations) are in input? I would remember that a permutation is just one function {1..n}->{s1...sn} injective and on all the set of arrive
    $endgroup$
    – RosLuP
    8 hours ago












  • $begingroup$
    Can we read our own source code? Or should we abide by quine rules?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    By non-trivially permute do you mean you just can't do 1,2,3...* or that you also can't do stuff like 2,1,3,4...*?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    Does x->x count?
    $endgroup$
    – Embodiment of Ignorance
    1 hour ago






  • 1




    $begingroup$
    @JoKing "zero bytes may not be part of the source code" re: the second question
    $endgroup$
    – ASCII-only
    38 mins ago




















  • $begingroup$
    {s1..sn} (from who build every permutations) are in input? I would remember that a permutation is just one function {1..n}->{s1...sn} injective and on all the set of arrive
    $endgroup$
    – RosLuP
    8 hours ago












  • $begingroup$
    Can we read our own source code? Or should we abide by quine rules?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    By non-trivially permute do you mean you just can't do 1,2,3...* or that you also can't do stuff like 2,1,3,4...*?
    $endgroup$
    – Jo King
    2 hours ago












  • $begingroup$
    Does x->x count?
    $endgroup$
    – Embodiment of Ignorance
    1 hour ago






  • 1




    $begingroup$
    @JoKing "zero bytes may not be part of the source code" re: the second question
    $endgroup$
    – ASCII-only
    38 mins ago


















$begingroup$
{s1..sn} (from who build every permutations) are in input? I would remember that a permutation is just one function {1..n}->{s1...sn} injective and on all the set of arrive
$endgroup$
– RosLuP
8 hours ago






$begingroup$
{s1..sn} (from who build every permutations) are in input? I would remember that a permutation is just one function {1..n}->{s1...sn} injective and on all the set of arrive
$endgroup$
– RosLuP
8 hours ago














$begingroup$
Can we read our own source code? Or should we abide by quine rules?
$endgroup$
– Jo King
2 hours ago






$begingroup$
Can we read our own source code? Or should we abide by quine rules?
$endgroup$
– Jo King
2 hours ago














$begingroup$
By non-trivially permute do you mean you just can't do 1,2,3...* or that you also can't do stuff like 2,1,3,4...*?
$endgroup$
– Jo King
2 hours ago






$begingroup$
By non-trivially permute do you mean you just can't do 1,2,3...* or that you also can't do stuff like 2,1,3,4...*?
$endgroup$
– Jo King
2 hours ago














$begingroup$
Does x->x count?
$endgroup$
– Embodiment of Ignorance
1 hour ago




$begingroup$
Does x->x count?
$endgroup$
– Embodiment of Ignorance
1 hour ago




1




1




$begingroup$
@JoKing "zero bytes may not be part of the source code" re: the second question
$endgroup$
– ASCII-only
38 mins ago






$begingroup$
@JoKing "zero bytes may not be part of the source code" re: the second question
$endgroup$
– ASCII-only
38 mins ago












6 Answers
6






active

oldest

votes


















5












$begingroup$


Jelly, score  288 250 212  199



-38 thanks to Erik the Outgolfer!



C-*+


Swaps even with odd.



The score is $67+45+44+43=199$ - see self-scoring here.



Try it online!






share|improve this answer











$endgroup$













  • $begingroup$
    Apparently, Leaky Nun's -*ạ has a score of 300... however, -*_@ has a score of 250. Maybe I should post that as my own, although it's the same permutation.
    $endgroup$
    – Erik the Outgolfer
    8 hours ago












  • $begingroup$
    Ah nice observation by Leaky Nun, so -*N+ scores 212
    $endgroup$
    – Jonathan Allan
    7 hours ago










  • $begingroup$
    It wasn't an observation, it was a self-answer to his (now pretty old) challenge. ;-)
    $endgroup$
    – Erik the Outgolfer
    7 hours ago





















3












$begingroup$

JavaScript (ES6), Score =  276  268





$=>(--$^40)+!0


Try it online!






share|improve this answer











$endgroup$













  • $begingroup$
    but 54^54 is 0
    $endgroup$
    – Jonathan Allan
    7 hours ago










  • $begingroup$
    @JonathanAllan Thanks for notifying. I somehow missed that part. Should be correct now.
    $endgroup$
    – Arnauld
    7 hours ago



















2












$begingroup$


Retina 0.8.2, 6 bytes, score 260



T`O`RO


Try it online! Link includes self-scoring footer. Simply swaps digits 1 and 9 and 3 and 7 in the decimal representations, so that numbers that contain no digits coprime to 10 are unaffected.






share|improve this answer









$endgroup$





















    2












    $begingroup$


    Perl 6, Score 804 615 576





    {{($++∉ords(q[!$()+12?_doqrsx{}∉])??21+$++!!++$)xx$_+1}()[$_]}


    Try it online!



    The first quine-y type answer here, and I think it scores pretty well. Anonymous code block that takes an integer and returns one.



    This produces the sequence $21,22,23,24...$ with the sequence $1,2,3,4...20$ inserted at the indexes of the unique sorted codepoints of the code. For example, the 30th through 35th elements of the sequence are $51,52,53,1,54,55$ since the 33rd codepoint is !.



    (This is 0-indexed, which might not be valid. I have a 1-indexed solution prepared)



    A more trivial answer (but with a worse score):




    Perl 6, Score: 647





    {TR;52;25;}


    Try it online!



    This swaps the digits 5 and 2 in the input, which mostly saves score on the ;52;25; part, which consists of code points in the 50-59 range (and increases the score of the {}, with codepoints 123 and 125)






    share|improve this answer











    $endgroup$





















      1












      $begingroup$


      Charcoal, 13 bytes, score 681



      ⁻⁺²³²ι⊗﹪⊖ι²³³


      Try it online! Link is to self-scoring version with header to map over an array of byte codes. (Charcoal has a custom code page so I've manually inserted the correct byte codes in the input.) Works by reversing ranges of 233 numbers, so that 117, 350, 583 ... are unchanged. Explanation:



           ι          Value
      ⁺ Plus
      ²³² Literal 232
      ⁻ Minus
      ι Value
      ⊖ Decremented
      ﹪ Modulo
      ²³³ Literal 233
      ⊗ Doubled





      share|improve this answer









      $endgroup$





















        1












        $begingroup$

        Haskell, score 985



        (((.),(-))->(.)*200+mod(-39+(-))200+1).((*)->divMod((*)-1)200)


        Try it online!






        share|improve this answer











        $endgroup$













        • $begingroup$
          I don't think this is a permutation, since adding a*200 has no effect modulo 200 so a doesn't matter.
          $endgroup$
          – xnor
          3 hours ago










        • $begingroup$
          @xnor Good catch. That's supposed to be outside of the mod. At some point while golfing, I must have messed up order of operations. Fixed now, thanks!
          $endgroup$
          – Joseph Sible
          2 hours ago












        • $begingroup$
          I think there's another issue that 40 maps to 0 but the challenge requires positive integers, which makes approaches like this tricky.
          $endgroup$
          – xnor
          2 hours ago






        • 1




          $begingroup$
          Using sum[1|...] over if..then..else should help.
          $endgroup$
          – ბიმო
          1 hour ago






        • 1




          $begingroup$
          Let us continue this discussion in chat.
          $endgroup$
          – ASCII-only
          32 mins ago











        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%2f181262%2fsource-permutation%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        6 Answers
        6






        active

        oldest

        votes








        6 Answers
        6






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        5












        $begingroup$


        Jelly, score  288 250 212  199



        -38 thanks to Erik the Outgolfer!



        C-*+


        Swaps even with odd.



        The score is $67+45+44+43=199$ - see self-scoring here.



        Try it online!






        share|improve this answer











        $endgroup$













        • $begingroup$
          Apparently, Leaky Nun's -*ạ has a score of 300... however, -*_@ has a score of 250. Maybe I should post that as my own, although it's the same permutation.
          $endgroup$
          – Erik the Outgolfer
          8 hours ago












        • $begingroup$
          Ah nice observation by Leaky Nun, so -*N+ scores 212
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          It wasn't an observation, it was a self-answer to his (now pretty old) challenge. ;-)
          $endgroup$
          – Erik the Outgolfer
          7 hours ago


















        5












        $begingroup$


        Jelly, score  288 250 212  199



        -38 thanks to Erik the Outgolfer!



        C-*+


        Swaps even with odd.



        The score is $67+45+44+43=199$ - see self-scoring here.



        Try it online!






        share|improve this answer











        $endgroup$













        • $begingroup$
          Apparently, Leaky Nun's -*ạ has a score of 300... however, -*_@ has a score of 250. Maybe I should post that as my own, although it's the same permutation.
          $endgroup$
          – Erik the Outgolfer
          8 hours ago












        • $begingroup$
          Ah nice observation by Leaky Nun, so -*N+ scores 212
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          It wasn't an observation, it was a self-answer to his (now pretty old) challenge. ;-)
          $endgroup$
          – Erik the Outgolfer
          7 hours ago
















        5












        5








        5





        $begingroup$


        Jelly, score  288 250 212  199



        -38 thanks to Erik the Outgolfer!



        C-*+


        Swaps even with odd.



        The score is $67+45+44+43=199$ - see self-scoring here.



        Try it online!






        share|improve this answer











        $endgroup$




        Jelly, score  288 250 212  199



        -38 thanks to Erik the Outgolfer!



        C-*+


        Swaps even with odd.



        The score is $67+45+44+43=199$ - see self-scoring here.



        Try it online!







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 7 hours ago

























        answered 8 hours ago









        Jonathan AllanJonathan Allan

        52.7k535170




        52.7k535170












        • $begingroup$
          Apparently, Leaky Nun's -*ạ has a score of 300... however, -*_@ has a score of 250. Maybe I should post that as my own, although it's the same permutation.
          $endgroup$
          – Erik the Outgolfer
          8 hours ago












        • $begingroup$
          Ah nice observation by Leaky Nun, so -*N+ scores 212
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          It wasn't an observation, it was a self-answer to his (now pretty old) challenge. ;-)
          $endgroup$
          – Erik the Outgolfer
          7 hours ago




















        • $begingroup$
          Apparently, Leaky Nun's -*ạ has a score of 300... however, -*_@ has a score of 250. Maybe I should post that as my own, although it's the same permutation.
          $endgroup$
          – Erik the Outgolfer
          8 hours ago












        • $begingroup$
          Ah nice observation by Leaky Nun, so -*N+ scores 212
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          It wasn't an observation, it was a self-answer to his (now pretty old) challenge. ;-)
          $endgroup$
          – Erik the Outgolfer
          7 hours ago


















        $begingroup$
        Apparently, Leaky Nun's -*ạ has a score of 300... however, -*_@ has a score of 250. Maybe I should post that as my own, although it's the same permutation.
        $endgroup$
        – Erik the Outgolfer
        8 hours ago






        $begingroup$
        Apparently, Leaky Nun's -*ạ has a score of 300... however, -*_@ has a score of 250. Maybe I should post that as my own, although it's the same permutation.
        $endgroup$
        – Erik the Outgolfer
        8 hours ago














        $begingroup$
        Ah nice observation by Leaky Nun, so -*N+ scores 212
        $endgroup$
        – Jonathan Allan
        7 hours ago




        $begingroup$
        Ah nice observation by Leaky Nun, so -*N+ scores 212
        $endgroup$
        – Jonathan Allan
        7 hours ago












        $begingroup$
        It wasn't an observation, it was a self-answer to his (now pretty old) challenge. ;-)
        $endgroup$
        – Erik the Outgolfer
        7 hours ago






        $begingroup$
        It wasn't an observation, it was a self-answer to his (now pretty old) challenge. ;-)
        $endgroup$
        – Erik the Outgolfer
        7 hours ago













        3












        $begingroup$

        JavaScript (ES6), Score =  276  268





        $=>(--$^40)+!0


        Try it online!






        share|improve this answer











        $endgroup$













        • $begingroup$
          but 54^54 is 0
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          @JonathanAllan Thanks for notifying. I somehow missed that part. Should be correct now.
          $endgroup$
          – Arnauld
          7 hours ago
















        3












        $begingroup$

        JavaScript (ES6), Score =  276  268





        $=>(--$^40)+!0


        Try it online!






        share|improve this answer











        $endgroup$













        • $begingroup$
          but 54^54 is 0
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          @JonathanAllan Thanks for notifying. I somehow missed that part. Should be correct now.
          $endgroup$
          – Arnauld
          7 hours ago














        3












        3








        3





        $begingroup$

        JavaScript (ES6), Score =  276  268





        $=>(--$^40)+!0


        Try it online!






        share|improve this answer











        $endgroup$



        JavaScript (ES6), Score =  276  268





        $=>(--$^40)+!0


        Try it online!







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 7 hours ago

























        answered 8 hours ago









        ArnauldArnauld

        78.2k795326




        78.2k795326












        • $begingroup$
          but 54^54 is 0
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          @JonathanAllan Thanks for notifying. I somehow missed that part. Should be correct now.
          $endgroup$
          – Arnauld
          7 hours ago


















        • $begingroup$
          but 54^54 is 0
          $endgroup$
          – Jonathan Allan
          7 hours ago










        • $begingroup$
          @JonathanAllan Thanks for notifying. I somehow missed that part. Should be correct now.
          $endgroup$
          – Arnauld
          7 hours ago
















        $begingroup$
        but 54^54 is 0
        $endgroup$
        – Jonathan Allan
        7 hours ago




        $begingroup$
        but 54^54 is 0
        $endgroup$
        – Jonathan Allan
        7 hours ago












        $begingroup$
        @JonathanAllan Thanks for notifying. I somehow missed that part. Should be correct now.
        $endgroup$
        – Arnauld
        7 hours ago




        $begingroup$
        @JonathanAllan Thanks for notifying. I somehow missed that part. Should be correct now.
        $endgroup$
        – Arnauld
        7 hours ago











        2












        $begingroup$


        Retina 0.8.2, 6 bytes, score 260



        T`O`RO


        Try it online! Link includes self-scoring footer. Simply swaps digits 1 and 9 and 3 and 7 in the decimal representations, so that numbers that contain no digits coprime to 10 are unaffected.






        share|improve this answer









        $endgroup$


















          2












          $begingroup$


          Retina 0.8.2, 6 bytes, score 260



          T`O`RO


          Try it online! Link includes self-scoring footer. Simply swaps digits 1 and 9 and 3 and 7 in the decimal representations, so that numbers that contain no digits coprime to 10 are unaffected.






          share|improve this answer









          $endgroup$
















            2












            2








            2





            $begingroup$


            Retina 0.8.2, 6 bytes, score 260



            T`O`RO


            Try it online! Link includes self-scoring footer. Simply swaps digits 1 and 9 and 3 and 7 in the decimal representations, so that numbers that contain no digits coprime to 10 are unaffected.






            share|improve this answer









            $endgroup$




            Retina 0.8.2, 6 bytes, score 260



            T`O`RO


            Try it online! Link includes self-scoring footer. Simply swaps digits 1 and 9 and 3 and 7 in the decimal representations, so that numbers that contain no digits coprime to 10 are unaffected.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 6 hours ago









            NeilNeil

            81.5k745178




            81.5k745178























                2












                $begingroup$


                Perl 6, Score 804 615 576





                {{($++∉ords(q[!$()+12?_doqrsx{}∉])??21+$++!!++$)xx$_+1}()[$_]}


                Try it online!



                The first quine-y type answer here, and I think it scores pretty well. Anonymous code block that takes an integer and returns one.



                This produces the sequence $21,22,23,24...$ with the sequence $1,2,3,4...20$ inserted at the indexes of the unique sorted codepoints of the code. For example, the 30th through 35th elements of the sequence are $51,52,53,1,54,55$ since the 33rd codepoint is !.



                (This is 0-indexed, which might not be valid. I have a 1-indexed solution prepared)



                A more trivial answer (but with a worse score):




                Perl 6, Score: 647





                {TR;52;25;}


                Try it online!



                This swaps the digits 5 and 2 in the input, which mostly saves score on the ;52;25; part, which consists of code points in the 50-59 range (and increases the score of the {}, with codepoints 123 and 125)






                share|improve this answer











                $endgroup$


















                  2












                  $begingroup$


                  Perl 6, Score 804 615 576





                  {{($++∉ords(q[!$()+12?_doqrsx{}∉])??21+$++!!++$)xx$_+1}()[$_]}


                  Try it online!



                  The first quine-y type answer here, and I think it scores pretty well. Anonymous code block that takes an integer and returns one.



                  This produces the sequence $21,22,23,24...$ with the sequence $1,2,3,4...20$ inserted at the indexes of the unique sorted codepoints of the code. For example, the 30th through 35th elements of the sequence are $51,52,53,1,54,55$ since the 33rd codepoint is !.



                  (This is 0-indexed, which might not be valid. I have a 1-indexed solution prepared)



                  A more trivial answer (but with a worse score):




                  Perl 6, Score: 647





                  {TR;52;25;}


                  Try it online!



                  This swaps the digits 5 and 2 in the input, which mostly saves score on the ;52;25; part, which consists of code points in the 50-59 range (and increases the score of the {}, with codepoints 123 and 125)






                  share|improve this answer











                  $endgroup$
















                    2












                    2








                    2





                    $begingroup$


                    Perl 6, Score 804 615 576





                    {{($++∉ords(q[!$()+12?_doqrsx{}∉])??21+$++!!++$)xx$_+1}()[$_]}


                    Try it online!



                    The first quine-y type answer here, and I think it scores pretty well. Anonymous code block that takes an integer and returns one.



                    This produces the sequence $21,22,23,24...$ with the sequence $1,2,3,4...20$ inserted at the indexes of the unique sorted codepoints of the code. For example, the 30th through 35th elements of the sequence are $51,52,53,1,54,55$ since the 33rd codepoint is !.



                    (This is 0-indexed, which might not be valid. I have a 1-indexed solution prepared)



                    A more trivial answer (but with a worse score):




                    Perl 6, Score: 647





                    {TR;52;25;}


                    Try it online!



                    This swaps the digits 5 and 2 in the input, which mostly saves score on the ;52;25; part, which consists of code points in the 50-59 range (and increases the score of the {}, with codepoints 123 and 125)






                    share|improve this answer











                    $endgroup$




                    Perl 6, Score 804 615 576





                    {{($++∉ords(q[!$()+12?_doqrsx{}∉])??21+$++!!++$)xx$_+1}()[$_]}


                    Try it online!



                    The first quine-y type answer here, and I think it scores pretty well. Anonymous code block that takes an integer and returns one.



                    This produces the sequence $21,22,23,24...$ with the sequence $1,2,3,4...20$ inserted at the indexes of the unique sorted codepoints of the code. For example, the 30th through 35th elements of the sequence are $51,52,53,1,54,55$ since the 33rd codepoint is !.



                    (This is 0-indexed, which might not be valid. I have a 1-indexed solution prepared)



                    A more trivial answer (but with a worse score):




                    Perl 6, Score: 647





                    {TR;52;25;}


                    Try it online!



                    This swaps the digits 5 and 2 in the input, which mostly saves score on the ;52;25; part, which consists of code points in the 50-59 range (and increases the score of the {}, with codepoints 123 and 125)







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited 4 mins ago

























                    answered 2 hours ago









                    Jo KingJo King

                    24.5k357126




                    24.5k357126























                        1












                        $begingroup$


                        Charcoal, 13 bytes, score 681



                        ⁻⁺²³²ι⊗﹪⊖ι²³³


                        Try it online! Link is to self-scoring version with header to map over an array of byte codes. (Charcoal has a custom code page so I've manually inserted the correct byte codes in the input.) Works by reversing ranges of 233 numbers, so that 117, 350, 583 ... are unchanged. Explanation:



                             ι          Value
                        ⁺ Plus
                        ²³² Literal 232
                        ⁻ Minus
                        ι Value
                        ⊖ Decremented
                        ﹪ Modulo
                        ²³³ Literal 233
                        ⊗ Doubled





                        share|improve this answer









                        $endgroup$


















                          1












                          $begingroup$


                          Charcoal, 13 bytes, score 681



                          ⁻⁺²³²ι⊗﹪⊖ι²³³


                          Try it online! Link is to self-scoring version with header to map over an array of byte codes. (Charcoal has a custom code page so I've manually inserted the correct byte codes in the input.) Works by reversing ranges of 233 numbers, so that 117, 350, 583 ... are unchanged. Explanation:



                               ι          Value
                          ⁺ Plus
                          ²³² Literal 232
                          ⁻ Minus
                          ι Value
                          ⊖ Decremented
                          ﹪ Modulo
                          ²³³ Literal 233
                          ⊗ Doubled





                          share|improve this answer









                          $endgroup$
















                            1












                            1








                            1





                            $begingroup$


                            Charcoal, 13 bytes, score 681



                            ⁻⁺²³²ι⊗﹪⊖ι²³³


                            Try it online! Link is to self-scoring version with header to map over an array of byte codes. (Charcoal has a custom code page so I've manually inserted the correct byte codes in the input.) Works by reversing ranges of 233 numbers, so that 117, 350, 583 ... are unchanged. Explanation:



                                 ι          Value
                            ⁺ Plus
                            ²³² Literal 232
                            ⁻ Minus
                            ι Value
                            ⊖ Decremented
                            ﹪ Modulo
                            ²³³ Literal 233
                            ⊗ Doubled





                            share|improve this answer









                            $endgroup$




                            Charcoal, 13 bytes, score 681



                            ⁻⁺²³²ι⊗﹪⊖ι²³³


                            Try it online! Link is to self-scoring version with header to map over an array of byte codes. (Charcoal has a custom code page so I've manually inserted the correct byte codes in the input.) Works by reversing ranges of 233 numbers, so that 117, 350, 583 ... are unchanged. Explanation:



                                 ι          Value
                            ⁺ Plus
                            ²³² Literal 232
                            ⁻ Minus
                            ι Value
                            ⊖ Decremented
                            ﹪ Modulo
                            ²³³ Literal 233
                            ⊗ Doubled






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 6 hours ago









                            NeilNeil

                            81.5k745178




                            81.5k745178























                                1












                                $begingroup$

                                Haskell, score 985



                                (((.),(-))->(.)*200+mod(-39+(-))200+1).((*)->divMod((*)-1)200)


                                Try it online!






                                share|improve this answer











                                $endgroup$













                                • $begingroup$
                                  I don't think this is a permutation, since adding a*200 has no effect modulo 200 so a doesn't matter.
                                  $endgroup$
                                  – xnor
                                  3 hours ago










                                • $begingroup$
                                  @xnor Good catch. That's supposed to be outside of the mod. At some point while golfing, I must have messed up order of operations. Fixed now, thanks!
                                  $endgroup$
                                  – Joseph Sible
                                  2 hours ago












                                • $begingroup$
                                  I think there's another issue that 40 maps to 0 but the challenge requires positive integers, which makes approaches like this tricky.
                                  $endgroup$
                                  – xnor
                                  2 hours ago






                                • 1




                                  $begingroup$
                                  Using sum[1|...] over if..then..else should help.
                                  $endgroup$
                                  – ბიმო
                                  1 hour ago






                                • 1




                                  $begingroup$
                                  Let us continue this discussion in chat.
                                  $endgroup$
                                  – ASCII-only
                                  32 mins ago
















                                1












                                $begingroup$

                                Haskell, score 985



                                (((.),(-))->(.)*200+mod(-39+(-))200+1).((*)->divMod((*)-1)200)


                                Try it online!






                                share|improve this answer











                                $endgroup$













                                • $begingroup$
                                  I don't think this is a permutation, since adding a*200 has no effect modulo 200 so a doesn't matter.
                                  $endgroup$
                                  – xnor
                                  3 hours ago










                                • $begingroup$
                                  @xnor Good catch. That's supposed to be outside of the mod. At some point while golfing, I must have messed up order of operations. Fixed now, thanks!
                                  $endgroup$
                                  – Joseph Sible
                                  2 hours ago












                                • $begingroup$
                                  I think there's another issue that 40 maps to 0 but the challenge requires positive integers, which makes approaches like this tricky.
                                  $endgroup$
                                  – xnor
                                  2 hours ago






                                • 1




                                  $begingroup$
                                  Using sum[1|...] over if..then..else should help.
                                  $endgroup$
                                  – ბიმო
                                  1 hour ago






                                • 1




                                  $begingroup$
                                  Let us continue this discussion in chat.
                                  $endgroup$
                                  – ASCII-only
                                  32 mins ago














                                1












                                1








                                1





                                $begingroup$

                                Haskell, score 985



                                (((.),(-))->(.)*200+mod(-39+(-))200+1).((*)->divMod((*)-1)200)


                                Try it online!






                                share|improve this answer











                                $endgroup$



                                Haskell, score 985



                                (((.),(-))->(.)*200+mod(-39+(-))200+1).((*)->divMod((*)-1)200)


                                Try it online!







                                share|improve this answer














                                share|improve this answer



                                share|improve this answer








                                edited 28 mins ago

























                                answered 4 hours ago









                                Joseph SibleJoseph Sible

                                2275




                                2275












                                • $begingroup$
                                  I don't think this is a permutation, since adding a*200 has no effect modulo 200 so a doesn't matter.
                                  $endgroup$
                                  – xnor
                                  3 hours ago










                                • $begingroup$
                                  @xnor Good catch. That's supposed to be outside of the mod. At some point while golfing, I must have messed up order of operations. Fixed now, thanks!
                                  $endgroup$
                                  – Joseph Sible
                                  2 hours ago












                                • $begingroup$
                                  I think there's another issue that 40 maps to 0 but the challenge requires positive integers, which makes approaches like this tricky.
                                  $endgroup$
                                  – xnor
                                  2 hours ago






                                • 1




                                  $begingroup$
                                  Using sum[1|...] over if..then..else should help.
                                  $endgroup$
                                  – ბიმო
                                  1 hour ago






                                • 1




                                  $begingroup$
                                  Let us continue this discussion in chat.
                                  $endgroup$
                                  – ASCII-only
                                  32 mins ago


















                                • $begingroup$
                                  I don't think this is a permutation, since adding a*200 has no effect modulo 200 so a doesn't matter.
                                  $endgroup$
                                  – xnor
                                  3 hours ago










                                • $begingroup$
                                  @xnor Good catch. That's supposed to be outside of the mod. At some point while golfing, I must have messed up order of operations. Fixed now, thanks!
                                  $endgroup$
                                  – Joseph Sible
                                  2 hours ago












                                • $begingroup$
                                  I think there's another issue that 40 maps to 0 but the challenge requires positive integers, which makes approaches like this tricky.
                                  $endgroup$
                                  – xnor
                                  2 hours ago






                                • 1




                                  $begingroup$
                                  Using sum[1|...] over if..then..else should help.
                                  $endgroup$
                                  – ბიმო
                                  1 hour ago






                                • 1




                                  $begingroup$
                                  Let us continue this discussion in chat.
                                  $endgroup$
                                  – ASCII-only
                                  32 mins ago
















                                $begingroup$
                                I don't think this is a permutation, since adding a*200 has no effect modulo 200 so a doesn't matter.
                                $endgroup$
                                – xnor
                                3 hours ago




                                $begingroup$
                                I don't think this is a permutation, since adding a*200 has no effect modulo 200 so a doesn't matter.
                                $endgroup$
                                – xnor
                                3 hours ago












                                $begingroup$
                                @xnor Good catch. That's supposed to be outside of the mod. At some point while golfing, I must have messed up order of operations. Fixed now, thanks!
                                $endgroup$
                                – Joseph Sible
                                2 hours ago






                                $begingroup$
                                @xnor Good catch. That's supposed to be outside of the mod. At some point while golfing, I must have messed up order of operations. Fixed now, thanks!
                                $endgroup$
                                – Joseph Sible
                                2 hours ago














                                $begingroup$
                                I think there's another issue that 40 maps to 0 but the challenge requires positive integers, which makes approaches like this tricky.
                                $endgroup$
                                – xnor
                                2 hours ago




                                $begingroup$
                                I think there's another issue that 40 maps to 0 but the challenge requires positive integers, which makes approaches like this tricky.
                                $endgroup$
                                – xnor
                                2 hours ago




                                1




                                1




                                $begingroup$
                                Using sum[1|...] over if..then..else should help.
                                $endgroup$
                                – ბიმო
                                1 hour ago




                                $begingroup$
                                Using sum[1|...] over if..then..else should help.
                                $endgroup$
                                – ბიმო
                                1 hour ago




                                1




                                1




                                $begingroup$
                                Let us continue this discussion in chat.
                                $endgroup$
                                – ASCII-only
                                32 mins ago




                                $begingroup$
                                Let us continue this discussion in chat.
                                $endgroup$
                                – ASCII-only
                                32 mins ago


















                                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%2f181262%2fsource-permutation%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

                                CARDNET

                                Boot-repair Failure: Unable to locate package grub-common:i386

                                Aws NAT - Aws IGW- Aws router