1. Standard memberAThousandYoung
    Shoot the Squatters?
    tinyurl.com/43m7k8bw
    Joined
    23 Aug '04
    Moves
    26660
    22 May '05 16:27
    Originally posted by rheymans
    It does not matter once you know which it is, but you don't at the beginning. This piece of uncertainty makes the problem much more difficult. If you know beforehand that the special marble is heavier, then the solution is much easier to get.
    Oh. My solution doesn't work then.
  2. Standard memberHegemon
    A Lost Bobby
    London
    Joined
    21 Sep '04
    Moves
    20133
    25 May '05 12:35
    Solution (and it took me ages to prove it worked all the way through):
    Note, any marble proved OK we call X

    test 1
    1,2,3,4 vs 5,6,7,8 -> on the side 9,10,11,12
    If = then 9,10,11,12 could be wrong (go to test 2a) the rest ok
    If <> then 1,2,3,4,5,6,7,8,9 could be wrong (go to test 2b) the rest ok
    Note: remember whether < or >

    test 2
    a)
    9,10 vs 11,X -> on the side 12 (all others are OK=X)
    If = then 12 must be wrong END
    If <> then 9,10,11 must be wrong (goto test 3)

    b) 1,X,X,7 vs 5,6,2,3 -> on the side 4,8 (all others are OK=X)
    If = then 4,8 must be wrong (final test is a breeze so I won't continue END)
    If previous test was < and this is < then 1,5,6 must be wrong (goto 3)
    If previous test was < and this is > then 7,2,3 must be wrong (goto 3)
    Note: Similar rules apply if previous test was >
    Note: This is because moving balls from one side to the other will change the balance of the scales if one of those moved marbles is different from all others.
    Note: remember whether this test was < or >

    test 3
    We now have one test to determine which of 3 remaining marbles is wrong depending on the results of previous tests, either :
    9,10,11 - 1,5,6 - 7,2,3
    We will work with 9,10,11 since the method is the same. You need to move the balls around again:

    9,X vs 10,X -> on the side 11 (all others are OK)
    If previous test was <> and this is = then 11 must be wrong END
    If previous test was < and this is < then 9 is wrong END
    If previous test was < and this is > then 10 is wrong END

    So the trick is starting with 3 groups of 4 marbles. Put some on the side and determine some marbles that are proved to be OK. Then swap the marbles around and add in some OK marbles to make the scales tip one way or the other.


  3. Standard memberHegemon
    A Lost Bobby
    London
    Joined
    21 Sep '04
    Moves
    20133
    25 May '05 13:11
    to add to this:
    - It doesnt' matter whether the "special" ball is heavier or lighter, just knowing that it is different allows all the tests to work.
    - because you don't know if the special marble is lighter or heavier the scales themselves can only provide two answers per test: = or <>. But by using the results of each test to help with the next you can expand the meaningful results to =, < or > in the second and third tests.
    - Putting some to the side allows the = result prove that those on the side are wrong.
    - Adding in marbles that are already proved to be ok, helps purely as "ballast". ie keeping the scales theoretically balanced
    - moving marbles from one side to the other allows identification of the special marble by virtue that moving it (or not moving it) has resulted in a change to how the scales react.
  4. Joined
    11 Feb '04
    Moves
    6480
    06 Jun '05 18:52
    It is possible to determine which "marble" is different AND whether its heavier or lighter even if you dont know which at the beginning of the puzzle.
  5. Joined
    29 Apr '05
    Moves
    827
    10 Jun '05 15:351 edit
    Here's a solution that will probably amaze you, once you understand it :-)

    You make 3 fixed weighings with each independend of the result of the previous weighing. It goes as follows:

    1st weighing: 5,6,8,10 --- 7,9,11,12
    2nd weighing: 2,3,4,7 --- 5,6,11,12
    3rd weighing: 1,4,10,11 --- 2,5,7,8

    Now you have to know that the first 1st weighing has a "score" of 9 or -9 points. The 2nd one scores 3 or -3 points, the third scores 1 or -1 point.

    To test this, we choose any marble, lets say no. 8, and we say its lighter than the others. In 1st weighing the right side of the balance will go down then, so you have to keep the score "-9" in mind for that. 2nd weighing will stay balanced so "0" points for that. In 3rd weighing the right side will go up, so "+1" for that. Now we add up our scores of -9+0+1 and the result is -8, which means it was marble no. 8 and its lighter than others.

    It works like this for all other numbers, so there you have your solution!

    The only exception are numberes 7,9,11,12 for which the result is reversed (this is because you have to place 4 marbles on the right side as well in the first weighting). So let's say its marble 11 which is heavier than others you would get "-9" in 1st weighing (right side goes down). 2nd weighing "-3" (right side goes down). 3rd try is "+1" (right side goes up). The result will be -11 and since this is one of the numbers mentioned above you, just reverse the result to +11 and know that its heavier than the others.

    Okay, hope I didn't make any mistake above hehe. But I know the solution itself works and I like it alot because its plain mathematics ;-)

    I found it on a website, where it was said that an american student once came up with this solution.

    I looked a bit deeper into it and figured out that the scores of each weighings (1,3,9) are the results of 3^0, 3^1 and 3^2. I tested then if it's possible to expand the problem and it really works. If you take 36 marbles and 4 weighings, you can also detemermine the odd one by giving the first weighing the score of 3^3 = 27 points.....and so on (3^4, 3^5 etc.). To determine the number of marbles you just add the score of the first 2 weighings. So in this case it was 27+9=36.

    So to raise the fun let's take 3^10. The score of the first weighing will be 59049 then and you can take 78732 marbles (3^10 + 3^9). Then you can determine the odd marble in 11 weighing out of 78732 marbles. Not bad eh? :-)
  6. Joined
    24 May '05
    Moves
    1958
    10 Jun '05 16:19
    Originally posted by crazyblue
    Here's a solution that will probably amaze you, once you understand it :-)

    You make 3 fixed weighings with each independend of the result of the previous weighing. It goes as follows:

    1st weighing: 5,6,8,10 --- 7,9,11,12
    2nd weighing: 2,3,4,7 --- 5,6,11,12
    3rd weighing: 1,4,10,11 --- 2,5,7,8

    Now you have to know that the first 1st weighing has ...[text shortened]... ^9). Then you can determine the odd marble in 11 weighing out of 78732 marbles. Not bad eh? :-)
    cool, that makes everything some easier if u can remember those numbers 😛
  7. Joined
    07 Dec '09
    Moves
    0
    07 Dec '09 16:50
    I have come up a while ago with a solution using a set of arrays, weighing only three times. It is too long to explain as algorithm, but you can play the Java game here
    http://kebedjiev.atspace.com/wap/marbles.html
    The source code for a WAP phone is also published, if you would like to check the algorithm:
    http://kebedjiev.atspace.com/papers/WritingWaplets2.html
Back to Top

Cookies help us deliver our Services. By using our Services or clicking I agree, you agree to our use of cookies. Learn More.I Agree