Results 1 to 12 of 12

Thread: Coin Puzzle

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Feb 2000
    Location
    Sedgefield
    Posts
    337

    Coin Puzzle

    OK so it isn't strictly (but it could be!) maths, but this seems to be
    the place for curious puzzles.

    It might help to place five coins (three of one type, two of
    another) in a line on the table.

    Can you rearrange the following:

    Code:
    xoxox
    to
    Code:
    xxxoo
    subject to the following rules:

    1) You must move two adjacent red and black coins each time.
    2) Each move must 'jump' at least one other adjacent
    coin (i.e. you are not allowed to 'jump' spaces).

    This can be done in five moves - persistence will pay off

    Dan

    Outside of a dog, a book is a man's best friend.
    Inside of a dog, it's too dark to read.

  2. #2
    transcendental analytic kedaman's Avatar
    Join Date
    Mar 2000
    Location
    0x002F2EA8
    Posts
    7,221
    how do you move them and what's jump? (give me example)
    Use
    writing software in C++ is like driving rivets into steel beam with a toothpick.
    writing haskell makes your life easier:
    reverse (p (6*9)) where p x|x==0=""|True=chr (48+z): p y where (y,z)=divMod x 13
    To throw away OOP for low level languages is myopia, to keep OOP is hyperopia. To throw away OOP for a high level language is insight.

  3. #3

    Thread Starter
    Hyperactive Member
    Join Date
    Feb 2000
    Location
    Sedgefield
    Posts
    337

    Moving and Jumping

    OK,

    A move consists of (for example):

    Code:
    xoxox     ---->     xoxxo
    If you're doing this with real coins a move consists of putting two
    fingers of one hand on the relevant coins and sliding them on
    the table to the new poistion.

    Jumping is a little harder to explain, but is quite easy once you
    get it. In the above example the black coins (xox) are initially
    adjacent to the moved coins and are 'jumped' (i.e., when sliding
    the blue coins you move them 'over' the black coins).

    If you have the following situation (an dash represents a 'coin space'):

    Code:
    oxx--xo
    You are not allowed to move the two right most coins either into
    the space (not jumping an adjacent coin) or to the LHS of the row
    (jumping the space). You are allowed to move the two left most
    coins into the space (jumping the adjacent x), but not to
    the RHS of the row (jumping the space).

    Perhaps I got the explanation wrong above:

    You can never jump a space, but you must jump
    at least one coin which is initially adjacent to the coins being moved.


    Hope you can understand that, if not, reply back and I'll try to
    explain more.

    Dan

    Outside of a dog, a book is a man's best friend.
    Inside of a dog, it's too dark to read.

  4. #4
    transcendental analytic kedaman's Avatar
    Join Date
    Mar 2000
    Location
    0x002F2EA8
    Posts
    7,221
    So, when i move two coins their place is replaced by blanks, and I can only move coins to blank spaces, am I right? Or is it allowed to do insertion, which means coins will be shifted forward or backwards to open space for the movement?
    Use
    writing software in C++ is like driving rivets into steel beam with a toothpick.
    writing haskell makes your life easier:
    reverse (p (6*9)) where p x|x==0=""|True=chr (48+z): p y where (y,z)=divMod x 13
    To throw away OOP for low level languages is myopia, to keep OOP is hyperopia. To throw away OOP for a high level language is insight.

  5. #5
    Addicted Member
    Join Date
    Feb 2001
    Posts
    198
    I can do it in 3 moves.

  6. #6

    Thread Starter
    Hyperactive Member
    Join Date
    Feb 2000
    Location
    Sedgefield
    Posts
    337

    More explanation....

    kedaman: if I understand you correctly, yes you are only allowed to move into blank spaces (which may be on the end of the row of coins), no you are not allowed to 'insert' (you must jump at least one coin with each move). Try to imagine (or get some coins and really try it!) how you would make the moves in reality - five coins in a row, place the fisrt two fingers of you preferred hand on two of the coins, slide them on the table top...that is the only type of move you can make -only two fingers on two coins at any time.


    starman: if you can do it in three moves, please demonstrate


    I would suggest something like the following to indicate moves in this forum:

    Code:
    Move 1:
    |-|-|x|o|x|o|x|-|-|
    |-|-|-|-|x|o|x|x|o|
    where |-| indicates a blank space, the blue coins are the start of the move, the red coins their final position.

    Dan

    Outside of a dog, a book is a man's best friend.
    Inside of a dog, it's too dark to read.

  7. #7
    Addicted Member
    Join Date
    Feb 2001
    Posts
    198
    |-|-|x|o|x|o|x|
    |x|o|x|o|-|-|x|
    |x|-|-|o|o|x|x|
    |x|x|x|o|o|-|-|

    sorry, colours are a bit beyond me, but I think you can see the moves.

    They do end up shifted left by two places, is this legal ?

  8. #8

    Thread Starter
    Hyperactive Member
    Join Date
    Feb 2000
    Location
    Sedgefield
    Posts
    337

    Legal / Illegal

    They do end up shifted left by two places, is this legal ?
    Yes.

    But in your final move you are moving two 'x' coins.

    From my first post:

    1) You must move two adjacent red and black coins each time.
    or in your case, 'x' and 'o'.

    [color=red]If I removed the space after the slash, this text would be red[/ color]

    Dan

    Outside of a dog, a book is a man's best friend.
    Inside of a dog, it's too dark to read.

  9. #9
    Addicted Member
    Join Date
    Feb 2001
    Posts
    198
    oops! missed that instruction.
    I'll try again.

  10. #10
    transcendental analytic kedaman's Avatar
    Join Date
    Mar 2000
    Location
    0x002F2EA8
    Posts
    7,221
    Code:
    x o x o x _ _
    _ _ x o x x o _ _
    _ _ _ _ x x o x o
    _ _ _ _ x _ _ x o x o
    _ _ _ _ x o x x _ _ o
    _ _ _ _ _ _ x x x o o
    Use
    writing software in C++ is like driving rivets into steel beam with a toothpick.
    writing haskell makes your life easier:
    reverse (p (6*9)) where p x|x==0=""|True=chr (48+z): p y where (y,z)=divMod x 13
    To throw away OOP for low level languages is myopia, to keep OOP is hyperopia. To throw away OOP for a high level language is insight.

  11. #11
    Hyperactive Member rplcmint's Avatar
    Join Date
    Jan 2001
    Location
    Stockton, CA
    Posts
    333

    Two Moves

    From what I understand from the instructions..I can do it in two moves.

  12. #12

    Thread Starter
    Hyperactive Member
    Join Date
    Feb 2000
    Location
    Sedgefield
    Posts
    337

    Solution

    Kedaman's solution is correct, at least the way I interpretted the rules.

    If you can do it in two moves - please back your claim with a demonstration....


    Dan

    Outside of a dog, a book is a man's best friend.
    Inside of a dog, it's too dark to read.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width