Re: Interesting Math Problem

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Gary Herron

    Re: Interesting Math Problem

    BEES INC wrote:
    I've been awfully busy programming lately. My Django-based side
    project is coming along well and I hope to have it ready for use in a
    few weeks. Please don't ask more about it, that's really all I can say
    for now. Anyways, I came across an interesting little math problem
    today and was hoping some skilled programmers out there could come up
    with a more elegant solution than mine.
    Problem: Star Ratings
    >
    People can rate cheeseburgers on my website with a star rating of 0-5
    stars (whole stars only), 5 being mighty tasty and 0 being disgusting.
    I would like to show the average of everyone's ratings of a particular
    cheeseburger to the nearest half star. I have already calculated the
    average rating as a float (star_sum) and the total number of people
    that rated the particular cheeseburger (num_raters). The result should
    be stored as a float in a variable named "stars."
    >
    Much simpler this way. This produces the number of whole start and the
    number of half stars:

    v = ... calculate the average ...
    whole = int(v+0.25)
    half = int(2*(v+0.25-whole))


    Gary Herron


    My Solution (in Python):
    >
    # round to one decimal place and
    # separate into whole and fractional parts
    parts = str(round(star_ sum/num_raters, 1)).split('.')
    whole = int(parts[0])
    frac = int(parts[1])
    if frac < 3:
    ___frac = 0
    elif frac 7:
    ___frac = 0
    ___whole += 1
    else:
    ___frac = 5
    # recombine for a star rating rounded to the half
    stars = float(str(whole )+'.'+str(frac) )
    >
    Mmmm… In-N-Out Burgers… Please reply if you've got a better solution.
    --

    >
Working...