Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #25198

Re: Bijective basechanger

Newsgroups comp.lang.javascript
Date 2014-07-03 07:33 -0700
References (4 earlier) <e2df08be-246e-47c8-bbf8-1ca57d8f431b@googlegroups.com> <fc06a57e-0cc1-45f3-a814-08cf43bc0960@googlegroups.com> <de2372d0-0c2a-4ef5-b1b4-547ff7a154a1@googlegroups.com> <ce1ff707-717d-43d6-b2b5-70fa7e8c560d@googlegroups.com> <841ac7ab-d05e-43ea-9b43-65c99ca623b9@googlegroups.com>
Message-ID <00c43bf0-1dcd-45f6-ab25-6662e770b0ce@googlegroups.com> (permalink)
Subject Re: Bijective basechanger
From Scott Sauyet <scott.sauyet@gmail.com>

Show all headers | View raw


On Tuesday, July 1, 2014 5:39:05 AM UTC-4, jonas.t...@gmail.com wrote:
>skrev Scott Sauyet:
>> This might work better:
>> 
>>     var zeroless = function(str) {
>>         if (!str || str === "0") {return "";}
>>         var lastChar = str.slice(-1);
>>         var beginning = str.slice(0, -1);
>>         return lastChar === "0" ? 
>>                zeroless("" + (beginning - 1)) + "A" :
>>                zeroless(beginning) + lastChar;
>>     };           
>> 
>> It is certainly much cleaner and more elegant.
>> 
>> It would not be hard to extend to other bases.
> 
> It work good for base 10 but i get collisions using both your and my
> script using other bases.
> 
> http://web.comhem.se/jonasth/bijbase.html
> 
> Encoding 30 in base 3 should be 233=2(3^2)+2(3^1)+3(3^0) but 
> encode to 33=9.
> 
> Encoding 10 in base 2 should be 122=1(2^2)+2(2^1)+2(2^0) but 
> encode to 22=6.

Did you actually try to update this for other bases?  I hadn't done the
work here, leaving it as "an exercise for the reader".

Here is my approach:

    var zeroless = function(nbr, base) {
      if (!nbr || nbr === 0) {return "";}
      if (!base) {base = 10;}
      var str = "" + nbr.toString(base); 
      var lastChar = str.slice(-1); 
      var beginning = str.slice(0, -1); 
      return lastChar === "0" ? 
        zeroless(parseInt(beginning, base) - 1, base) + 
               (base).toString(base + 1).toUpperCase() : 
        zeroless(parseInt(beginning, base), base) + lastChar;
    };

I think it captures those cases as well.

  -- Scott

Back to comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Bijective basechanger jonas.thornvall@gmail.com - 2014-06-17 06:42 -0700
  Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-17 12:08 -0700
    Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-17 13:23 -0700
      Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-17 13:24 -0700
      Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-17 13:54 -0700
        Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-17 14:07 -0700
          Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-17 14:15 -0700
            Re: Bijective basechanger John Harris <niam@jghnorth.org.uk.invalid> - 2014-06-23 17:23 +0100
        Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-17 14:23 -0700
        Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-17 14:41 -0700
          Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-17 20:28 -0700
            Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-18 13:04 -0700
              Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-18 16:30 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-18 17:45 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-18 17:49 -0700
                Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-19 11:21 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-19 14:44 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-19 14:48 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-19 14:55 -0700
                Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-19 19:59 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-21 09:25 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-21 11:15 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-18 18:05 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-18 18:19 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-18 18:25 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-18 18:46 -0700
            Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-23 16:00 -0700
              Re: Bijective basechanger "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2014-06-23 17:51 -0700
  Re: Bijective basechanger John Harris <niam@jghnorth.org.uk.invalid> - 2014-06-23 17:18 +0100
    Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-23 11:27 -0700
  Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-06-23 15:29 -0700
    Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 03:26 -0700
      Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 03:28 -0700
      Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 04:24 -0700
        Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 05:36 -0700
        Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-06-24 13:05 -0700
          Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 14:13 -0700
            Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-25 05:36 -0700
            Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-06-25 12:45 -0700
              Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-06-25 13:15 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-01 02:39 -0700
                Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-07-03 07:33 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-03 09:54 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-04 02:14 -0700
                Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-07-05 12:12 -0700
                Re: Bijective basechanger "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2014-07-05 22:19 +0200
                Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-07-05 13:50 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-06 11:11 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-06 14:59 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-06 15:00 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-06 15:02 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-16 23:31 -0700
                Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-07-04 02:28 -0700
                Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-07-05 12:14 -0700
          Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-25 22:38 -0700
    Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 03:32 -0700
    Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 03:44 -0700
    Re: Bijective basechanger jonas.thornvall@gmail.com - 2014-06-24 11:10 -0700
      Re: Bijective basechanger Scott Sauyet <scott.sauyet@gmail.com> - 2014-06-24 11:45 -0700
  Re: Bijective basechanger "Chris M. Thomasson" <no@spam.invalid> - 2014-07-22 12:16 -0700

csiph-web