• Posts
  • RSS
  • ◂◂RSS
  • Contact

  • Make Truncation be Rounding

    May 22nd, 2016
    ideas, math  [html]
    When I see a number like "183" the first thing I see is a "1". If I'm looking very quickly, perhaps scanning a column of numbers, that might be all I see, and I'll approximate this number as "100" when "200" would be closer. Yes, truncation isn't the same thing as rounding, but wouldn't things be a lot easier if it were? Let's make it be that way.

    To interpret a number today, you multiply each column by the size it represents and add them up:

    number 100s 10s 1s sum
    100 1 0 0 1*100 + 0*10 + 0*1
    120 1 2 0 1*100 + 2*10 + 0*1
    121 1 2 1 1*100 + 2*10 + 1*1
    129 1 2 9 1*100 + 2*10 + 9*1
    125 1 2 5 1*100 + 2*10 + 5*1

    With this new system, we still do this, but in each column our available options range from -5 to 4 instead of 0 to 9.

    number 100s 10s 1s sum
    100 1 0 0 1*100 + 0*10 + 0*1
    120 1 2 0 1*100 + 2*10 + 0*1
    121 1 2 1 1*100 + 2*10 + 1*1
    129 1 3 -1 1*100 + 3*10 + -1*1
    125 1 3 -5 1*100 + 3*10 + -5*1

    Here are a few more examples:

    old notation new notation
    0 0
    4 4
    7 1-3
    579 1-4-2-1
    432 432
    1999 200-1

    And here's a program to calculate these:

    def to_new_notation(x):
      digits = []
      carry = False
      for digit in reversed([
            int(x) for x in str(x)]):
        if carry:
          digit += 1
          carry = False
    
        if digit >= 5:
          digit -= 10
          carry = True
    
        digits.append(digit)
    
      if carry:
        digits.append(1)
    
      digits.reverse()
      return digits
    

    Update 2016-05-25: Truncation isn't actually rounding in this system unless you allow both 5 and -5 as digits. Thanks to Marius for pointing this out.

    Comment via: google plus, facebook

    Recent posts on blogs I like:

    EDT with updating double counts

    I recently got confused thinking about the following case: Calculator bet: I am offered the opportunity to bet on a mathematical statement X to which I initially assign 50% probability (perhaps X = 139926 is a quadratic residue modulo 314159). I have acce…

    via The sideways view October 12, 2021

    Meditations on newborns

    [Content: death.]I wrote most of this a couple of months ago when Nora was a newborn, but the first few months are not that conducive to finishing blog posts. New babies put you into a liminal period, both in your own experience and in how others treat yo…

    via The whole sky October 3, 2021

    The value of in-house expertise

    An alternate title for this post might be, "Twitter has a kernel team!?". At this point, I've heard that surprised exclamation enough that I've lost count of the number times that's been said to me (I'd guess that it's more tha…

    via Posts on Dan Luu September 29, 2021

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact