Interview Question

Software Engineer Intern Interview New York, NY

Suppose you had eight identical balls. One of them is

  slightly heavier and you are given a balance scale . What's the fewest number of times you have to use the scale to find the heavier ball?
brain teaser

Interview Answer

37 Answers


3 times. (2^3 = 8)

Brian on 2009-07-29

Two. Split into three groups of three, three, and two. weigh the two groups of three against each other. If equal, weigh the group of two to find the heavier. If one group of three is heavier pick two of the three and compare them to find the heaviest.

Marty on 2009-07-29

Brian - this would be correct if you in fact were using a weighing scale, and not a balance scale. The ability to weigh one group against another with a balance scale allows Marty's answer to be a correct answer.

Although - the question as worded provides a loophole. If it had been worded as "What's the fewest number of times you have to use the scale to CONSISTENTLY find the heavier ball", then Marty's answer would be the only correct answer.

However, it is possible that you could get lucky and find the heavier ball in the first comparison. Therefore, the answer to the question as stated, is ONE.

Bill on 2009-07-29

This question is from the book "How to move Mt Fuji".... Marty has already got the right answer.

VK on 2009-07-30

Actually Bill, by your interpretation of the question the answer is zero, because you could just pick a ball at random. If you get lucky, then you've found the heaviest ball without using the scale at all, thus the least possible amount of times using the scale would be zero.

woctaog on 2009-07-31

The answer is 2, as @Marty mentioned. cuz its the worst case scenario which u have to consider, otherwise as @woctaog mentioned it can be zero, u just got lucky picking the first ball....

whizkid on 2009-07-31

None- weigh them in your hands.

Amy on 2009-07-31

Assuming that the balls cannot be discerned by physical touch, the answer is 3.
You first divide the balls in two groups of 4, weigh, and discard the lighter pile. You do the same with the 4 remaining, dividing into two groups of 2, weighing, and discarding the lighter pile. Then you weigh the two remaining balls, and the heavier one is evident.

Aly on 2009-08-02


3a+3b+2 = 8
if wt(3a)==wt(3b) then compare the remaining 2 to find the heaviest
if wt(3a) !== wt(3b) then
    ignore group of 2
   discard lighter group of 3
   divide the remaining group of 3 into 2+1
   weigh those 2
     If == the remaing 1 is the heaviest
    if !== the heaviest will be on the scale

le-impresario on 2009-08-04

With the systematic approach, the answer is 3.

But, if you randomly choose 2 balls and weigh them, and by coincidence one of these two is the heavier ball, then the fewest number of times you'd have to use the scale is 1.

Although the real question is: are the balls truly identical if one is heavier than the rest?

jimwilliams57 on 2009-08-05

just once. Say you are lucky and pick the heavy ball. One use of the scale will reveal your lucky choice

fewest possible times using the scale on 2009-08-05

so once, or the creative answer zero if you allow for weighing by hand

most answers seem to calculate the expected (average) number of times. on 2009-08-05

Without judging by hand: Put 4 balls on one side, and 4 on the other. Take the heavier group and divide again, put 2 balls on one side, and 2 on the other. Take the 2 that were heavier, and put one on each side. You've now found the heaviest ball. This is using the scale 3 times, and will always find the right ball.

Derek on 2009-08-06

None. They are identical. None is heavier.

HSS on 2009-08-06

2 weighings to find the slightly heavier ball.

Step 1.
compare 2 groups of three balls.

Case 1.
if they are both equal in weight, compare the last 2 balls - one will be heavier.

case 2.
If either group of 3 balls is heavier, take 2 balls from the heavier side.
compare 1 ball against the 2nd from the heavy group
result 1. if one ball is heavier than the other, you have found the slightly heavier ball.
result 2. if both balls are equal weight, the 3rd ball is the slightly heavier ball.

Easy Shmeezi

dutchmobil on 2009-08-06

Fewest - get lucky and pick the heaviest one. But wait! How would you know it is the heaviest one by just weighing one ball? Your logic is flawed.

Two groups of four. Split heavier one, weigh. Split heavier one, weigh. 3 times.

erich on 2009-08-06

i think its 3. i would take it like this

problem solved. i do this everyday. bye. praise be to allah. thats it.

Nishat Chowdhury on 2009-08-08

It's 2. Period.

If you can't figure it out look it up online or in "How Would You Move Mount Fuji" (like somebody else said). This is one of the most basic brainteasers you could be asked in an interview.

Anonymous on 2009-08-09

The answer is 2.

1) Divide the balls into 3 groups. 2 piles with 3 balls each, 1 pile with 2 balls.
2) Weigh the 2 piles of 3 balls. If both piles are the same weight, discard all 6 and weigh the last 2 to find the heavier one.
3) If 1 pile of 3 is heavier than the other, discard the lighter pile and the pile of 2 balls. Weigh 2 of the remaining 3 balls from the heavier pile. If both of the weighed balls are equal, the last ball is the heavier one.

Kevin on 2009-08-09

2=if all the balls are identical and you pick up the first...weigh it and the second one is lighter or heavier then you've found the heavier ball in the least amount of attempts.

Wanda on 2009-08-17

1=if all the balls are identical and you pick up the first...balance it and the second one is lighter or heavier then you've found the heavier ball in the least amount of attempts.

Wanda on 2009-08-17

Amy is 100% correct for the following reason:

everyone (except Amy) is solving the theoretical problem. The practical side of the problem - notwithstanding jimwilliams57's brilliant observation that if one weighs more than the others IT IS NOT IDENTICAL (would have loved to see the interviewer's face on that one) - in order to 'weigh' them on a scale, one has to pick them up, therefore, you will immediately detect the heavier one without weighing: pick-up three and three ... no difference, no need to weight. Pick-up the remaining two to determine the heavier one.


Steve on 2009-08-19

First off, take yourself through the process visually and forget square roots, that doesnt apply here and here is why: The question is the Minimum, not the MAXIMUM. BTW, the max would be 7 ( 8-1); you are comparing 2 objects, so 1 ball is eliminated automatically in the first step. Anyway, you have a fulcrom of which you are placing 2 of 8 objects on each end. If by chance you pick the slightly heavier object as one of the two balls, you have in fact, found the slightly heavier one in the first round... btw dont be a smartass with your interviewer, he is looking for smarts not smarmy;)

John on 2009-08-21

Respectfully, the folks who are answering "3" are mathematically modeling the nature of the balance incorrectly. Performing a measurement on a balance scale is not binary. It is trinary. Each measurement gives you one of three responses: The left is heavier, the right is heavier, or they are equal. So while you do need three binary bits to specify a number from one to eight, you need only two TRINARY-DIGITS

Formally, you want the smallest value of n such that 3^n >= 8. The answer is 2. Note that you could add a ninth ball, and still, you'd only need to make two measurements.

Of course, the smarty pants answer would be one. Just pick two balls at random and be lucky to have chosen the heavy one. But you're not guaranteed to be able to do it in just one measurement.

Morgan Creighton on 2009-08-22

English isn't my mother tongue... What is a balance scale? If looking up on Google, I find some devices with two bowls on a bar bearing in the center. Hence, the answer is once (if I'm luck enough to select the heavier ball in teh first measurement) If a balance scale allows to measure only one ball at a time, then it would take two measurements, unless you'd have more information on the weight, which is not listed here, hence doesn't exist in the context of the question^.

Greg on 2009-08-24

3 times. Not having looked at the other comments, hopefully, I am the 26th to get this right.
Put the balls 4 and 4 on the scale, Take the heavier side and place those balls 2 and 2 on the scale. Take the heavier side and place them 1 and 1 giving the heaviest ball.

RG emp on 2009-08-25

OK, now I read the comments and see that the people, like the question are divided into to groups, systematic approach people that say 3 (like I did) and analytic people that say 2. It takes a systematic person (me) a minute to get the answer. I'm guessing it took the analytic 5 minutes just to interpret all the ramifications of the question, i.e. they aren't idenitical if..., do it by hand..., get lucky.

RG emp on 2009-08-25

minimum is 1 (if lucky - 25% chance by picking 2 balls at random) & max is 2 (using most efficientl process to absolutely determine without luck - 3/3/2 scenario)

Brian on 2009-08-25

While Symantec was busy weighing my balls I took a job with NetApp.... They need to focus on hiring good, capable security engineers, not weighing their balls.

Dash on 2009-08-25

The point of these interview questions is to both check your logical brain function and to hear how you think. Most of you are just posting jerk off answers trying to be funny, or you are really dumb. These answer get you nowhere with me in an interview. Think out loud, go down the wrong path back track try another logic path, find the answer. None of this "0 if you use your hands". That is fine if you are interviewing for a job in advertising where creativity is desired, nobody wants you writing code like an 8 year old.

PuddinHead on 2010-03-17

You have 12 balls, equally big, equally heavy - except for one, which is a little heavier.

How would you identify the heavier ball if you could use a pair of balance scales only twice?

chelsea on 2013-09-02

The problem is based on Binary Search. Split the balls into groups of 4 each. Choose the heavier group. Continue till you get the heavier ball. This can be done in log(8) (base 2) operations, that is, 3.

Vaibhav on 2013-12-01

Since there is only one scale available to weigh. You first divide the balls in half. Weigh each group, take the heaviest group. This is using the scale twice so far. Now, divide the previous heaviest group into half, weigh both groups. Take the heaviest. Divide this last group and take the heaviest. This is the heaviest ball. We have used the scale 5 times.

Walter on 2014-10-07

Would it be wrong to say for a sample size as small as 8, we might as well not waste time thinking about an optimal solution and just use the scale 7 times, as this will be more efficient than coming up with an ideal solution prior to using the scale?

Craig on 2015-02-05


Anonymous on 2015-03-07

I stumbled across this while looking for something else on Google but I had to answer. It is 2, split balls into 2,3 and 3. weigh the 2 groups of 3 against each other. If equal weigh the group of 2 and the heaviest is obvious. If they are not equal keep heavy group of 3 and weigh 2 of the balls. if equal heaviest ball is one you didn't weigh. If not equal the heavy ball is obvious.

Anonymous on 2015-03-28

2 times.

8 balls.

1st step: [3] [3] [2]
2nd step: [[1] [1] [1]] [[1] [1] [1]] [[1] [1]]

Md. Kauser Ahmmed on 2015-04-05

Add Answers or Comments

To comment on this, Sign In or Sign Up.