• 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:

    The Gift of It's Your Problem Now

    Recently a security hole in a certain open source Java library resulted in a worldwide emergency kerfuffle as, say, 40% of the possibly hundreds of millions of worldwide deployments of this library needed to be updated in a hurry. (The other 60% also …

    via apenwarr January 1, 2022

    The container throttling problem

    This is an excerpt from an internal document David Mackey and I co-authored in April 2019. The document is excerpted since much of the original doc was about comparing possible approaches to increasing efficency at Twitter, which is mostly information tha…

    via Posts on December 18, 2021

    Experiences in raising children in shared housing

    Sometimes I see posts about people’s hope to raise children in a group housing situation, and it often seems overly optimistic to me. In particular they seem to expect that there will be more shared childcare than I think should be expected. Today I talke…

    via The whole sky October 18, 2021

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact