Skip to main content
replaced http://puzzling.stackexchange.com/ with https://puzzling.stackexchange.com/
Source Link

Working off of Collett's answerCollett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
Bitwise mapping is ideal for finding 1 element out of a set, not 2, in a single trial, so if you have both poisons in 1 group, you'll have to use a brute force method day 2. So, best case 18, worst case, well, much worse.

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
Bitwise mapping is ideal for finding 1 element out of a set, not 2, in a single trial, so if you have both poisons in 1 group, you'll have to use a brute force method day 2. So, best case 18, worst case, well, much worse.

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
Bitwise mapping is ideal for finding 1 element out of a set, not 2, in a single trial, so if you have both poisons in 1 group, you'll have to use a brute force method day 2. So, best case 18, worst case, well, much worse.

added 82 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
ActuallyBitwise mapping is ideal for finding 1 element out of a set, why not just do the binary mapping on 2 axis with, in a 1000x1000 grid?

It only takessingle trial, so if you have both poisons in 1 group, you'll have to use a brute force method day 2. So, but you could lose all 20 prisonersbest case 18, worst case, well, much worse.

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
Actually, why not just do the binary mapping on 2 axis with a 1000x1000 grid?

It only takes 1 day, but you could lose all 20 prisoners.

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
Bitwise mapping is ideal for finding 1 element out of a set, not 2, in a single trial, so if you have both poisons in 1 group, you'll have to use a brute force method day 2. So, best case 18, worst case, well, much worse.

added 251 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
Actually, why not just do the binary mapping on 2 axis with a 1000x1000 grid?

It only takes 1 day, but you could lose all 20 prisoners.

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like

  0 1 2 3 4 5 6
7 x x x x x x x
6 x x x x x x
5 x x x x x
4 x x x x
3 x x x
2 x x
1 x

EDIT 2:
Actually, why not just do the binary mapping on 2 axis with a 1000x1000 grid?

It only takes 1 day, but you could lose all 20 prisoners.

Working off of Collett's answer, how about this: First day, split bottles into groups of 250, 4 prisoners drink from the other 750 bottles. We have at most 2 survivors, which indicate the groups of 250 the poisons are in.

Then, we take the remaining 2, 14 unused, and leave 2 alone, and split them into 2 groups of 8. They each drink all 250 of one group (remaining 2 don't do this), then use the original solution on the other group of 250 to figure out the bottles.

Total: 18 prisoners.

Better explanation of 2nd day:
Say the 2 remaining prisoners are the ones that didn't drink 250's (A) and didn't drink 500's (B)
We make a new A' group that's composed of A and 7 others, and they drink all of 500's.
We make a new B' that's composed of B and 7 others and they drink all of 250's.
Since you have 8 slaves in each group $2^8 = 256$ which means you can determine the other poison in each group. So, A' tests all of the 250's, and B' tests all of the 500's.

They do that by doing a bitwise map. Each prisoner is a bit mapping (e.g. 00000100 and 00000010) and each bottle is represented by it's number in binary, and if your bottle matches your mapping, you drink.

EDIT:
So, what happens if you're left with only 1 group of 250 left? Well, you'd be left with 17 prisoners left. Luckily, if you get 2 groups of 8 out of them, you can still figure out the poison. Put the poisons in a 250x250 grid, and do the binary mapping on each axis.

You'll lose at most 19 prisoners here.

The mapping would look like (numbers are bottles, letters are prisoners), in this case, there are 8 bottles, so we need 3 prisoners per axis. Each prisoner drinks the bottles below them or on their row

Prisoners  a   a   a
             b b     b
                 c c c
Bottles  0 1 2 3 4 5 6
       7 x x x x x x x
     d 6 x x x x x x
   e   5 x x x x x
   e d 4 x x x x
 f     3 x x x
 f   d 2 x x
 f e   1 x

EDIT 2:
Actually, why not just do the binary mapping on 2 axis with a 1000x1000 grid?

It only takes 1 day, but you could lose all 20 prisoners.

added 160 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56
Loading
added 104 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56
Loading
added 486 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56
Loading
added 486 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56
Loading
added 486 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56
Loading
added 486 characters in body
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56
Loading
Source Link
JonTheMon
  • 9.9k
  • 37
  • 56
Loading