# The Starks, Parks, Clarks and their kids

Inspired by Martin Gardner's puzzle from his book

John,a new student at the Math Department of the College, was invited to a get-together at one of the Professor's house.

Professor Stark welcomed him and took him to the deck where he saw more people.

Professor Stark said," I have invited 2 more families: The Parks and the Clarks. The Parks' kids, the Clarks' kids and my kids are playing in the yard". John saw a bunch of kids running around.

Stark: Can you tell me, without counting, how many kids each family have? There are less than 15 kids total.

John: No

Stark: The product of the 3 numbers (number of kids each family has), is our house number which you saw coming in. Now?

John: No

Stark: Parks have less number of kids than the Clarks and the Clarks have less than us. Now?

John was still not sure. So he looked at the kids. Then the light bulb went on

John: Aha. You have __ Clark family have ___ and Park family have __

Stark: Right

If John did not count the kids in the yard,and he did not know anything about the families before the visit, how did he come up with the answer? What is the answer?

• There is definitely more to this than meets the eye but I wanted to ask, for starters, if John knows the numbers of kids in each family but not necessarily which family has which number of kids, would he still answer "no" to question 2? – hexomino Jun 24 at 11:23
• Correct. That is why he could not answer – DEEM Jun 24 at 12:02
• The edit from "their kids" to "The Parks' kids, the Clarks' kids" is quite significant. It whittles the solution set from 19 down to 7. – hexomino Jun 24 at 16:45
• My first thought was that all the families are of visually-differentiable ethnicities, and so John could tell them apart after looking at them (making the assumption that all the children physically resemble their parents). That really only uses the third clue though, so idk if this counts as an answer. – tryin Jun 25 at 12:27
• That @tyrin was my logic especially Park! – DEEM Jun 25 at 12:30

Edit #4: Hijacking the top of my answer to explain how I got my final answer. I wrote an R Script which I then had to re-run five more times, each time tweaking the initial information based on the information obtained from each run.

The trick is in setting up the initial conditions for the for loops to account for information you learned from the previous run of the script, so I will only include the snippets of those for loops.

Initial for loop:

for(N in 6:14){
for(i in 2:N){
for(j in 2:N){
for(k in 2:N){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}


This gives the table of solutions:

Starks  Parks   Clarks  House Number
4   2   3   24
5   2   3   30
6   2   3   36
5   2   4   40
7   2   3   42
6   2   4   48
8   2   3   48
9   2   3   54
7   2   4   56
5   3   4   60
6   2   5   60
8   2   4   64
7   2   5   70
6   3   4   72
7   3   4   84
6   3   5   90


From this table of possible solutions, we can see that Starks has 4-9 kids, Parks has 2-3, and Clarks has 3-5.

So the new for loop is:

for(N in 9:14){
for(i in 4:9){
for(j in 2:3){
for(k in 3:5){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}


Giving table:

Starks  Parks   Clarks  House Number
6   2   3   36
5   2   4   40
6   2   4   48
8   2   3   48
9   2   3   54
5   3   4   60
6   2   5   60
6   3   4   72


From this set of possible solutions, we learn that Starks has 5-9, and that there are 11-14 kids. So the new for loop is:

for(N in 11:14){
for(i in 5:9){
for(j in 2:3){
for(k in 3:5){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}


Yielding:

Starks  Parks   Clarks  House Number
6   2   4   48
8   2   3   48
9   2   3   54
5   3   4   60
6   2   5   60
6   3   4   72


Now we employ the second hint and selectively remove house number 60, eliminating the solution where Stark has 5. We can do this because 60 has two solutions, so we know it can't be 60. So the new for loop is:

for(N in 12:14){
for(i in 6:9){
for(j in 2:3){
for(k in 3:5){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}


Yielding:

Starks  Parks   Clarks  House Number
6   2   4   48
8   2   3   48
9   2   3   54
6   3   4   72


The final step now is to selectively remove house number 48, since we know it cannot be that one. This means stark has 6 or 9 kids, so the new for loop is:

for(N in 12:14){
for(i in c(6,9)){
for(j in 2:3){
for(k in 3:5){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}


Yielding:

S: 9 P: 2 C: 3 HN: 54

Finally just one possible solution remains.

Original Post: I've found 19 solutions which satisfy the information given. The only thing missing is the house number.

 S    P   C   HN
3    1   2   6
4    1   2   8
5    1   2   10
7    1   2   14
5    1   3   15
8    1   2   16
7    1   3   21
11   1   2   22
9    1   3   27
7    1   4   28
8    1   4   32
7    1   5   35
9    2   3   54
7    2   4   56
8    2   4   64
7    2   5   70
6    3   4   72
7    3   4   84
6    3   5   90

Here is the R Script I wrote to generate the table:

data<-data.frame(matrix(ncol = 1,nrow = 1))

data$$N<-NA data$$Starks<-NA
data$$Parks<-NA data$$Clarks<-NA

data$matrix.ncol...1..nrow...1.<-NULL #Generates list of all possible combinations of three numbers from 1 to 14 for(N in 6:14){ for(i in 1:N){ for(j in 1:N){ for(k in 1:N){ data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k)) } } } } #Sums kids data$$sum<-data$$Starks+data$$Parks+data$$Clarks #Eliminates out of bounds sums data<-data[data$$sum>5&data$$sum<15,] #Retrieves combinations within conditions given data<-data[data$$ParksClarks&data$$ClarksStarks,] data<-data[!is.na(data$N),]

#Creates House Numbers for each combination
data$$product<-data$$Starks*data$$Parks*data$$Clarks
data<-data[order(data$product),] #Eliminates combinations where N!=sum data<-data[data$$N==data$$sum,] data$occurences<-NA

#Counts House Number occurences
for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"])

}

#Eliminates house numbers occuring more than once
data<-data[data$occurences==1,] colnames(data)[6]<-"House Number" Kids<-data[,c(2,3,4,6)]  Edit: After assuming each family has at least two kids, the solution is still greater than one, but changes a bit.  Starks Parks Clarks House Number 758 5 2 3 30 1644 6 2 3 36 1545 5 2 4 40 2849 7 2 3 42 6486 9 2 3 54 4296 7 2 4 56 6318 8 2 4 64 6150 7 2 5 70 4164 6 3 4 72 6162 7 3 4 84 5994 6 3 5 90 Sorry if that table doesn’t format, I used the R compiler from my phone. Certain solutions become unique that weren’t unique before because house numbers and sums that contained 1 kid were eliminated. Edit #2: Assuming John has an R compiler in his head, he can re-run his code to account for newly learned information. First, he runs the code assuming each family has at least two kids. This gives a starting for loop: for(N in 6:14){ for(i in 2:N){ for(j in 2:N){ for(k in 2:N){ data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k)) } } } }  Running the script with this loop gives the last table I added to this increasingly long post. But after the last clue, John can assume the Starks have at least 4 kids, and the Clarks have at least 3. Rerunning the Script in his mind, he gets this solution set:  Starks Parks Clarks House Number 6 2 3 36 5 2 4 40 9 2 3 54 7 2 4 56 8 2 4 64 7 2 5 70 6 3 4 72 7 3 4 84 6 3 5 90 But now he knows that the Starks have at least five kids, the Parks have two or three, and the Clarks have 3 to 5. So we change our loop at the beginning of the Script and that gives two solutions: Starks Parks Clarks House Number 9 2 3 54 6 3 4 72 Running the script again with this information yields no new info. So we've got it down to two possible solutions. Edit #3: I believe I have solved it. Starks: 9, Parks: 2, Clarks: 3, House Number 54.I modified my script so that it does not immediately dismiss solutions coming from the same house number, and it eventually gets down to only one possible solution. Edit #5: Here is the entire R Script that outputs "Kids6" as the solution: data<-data.frame(matrix(ncol = 1,nrow = 1)) data$$N<-NA data$$Starks<-NA data$$Parks<-NA data$$Clarks<-NA data$matrix.ncol...1..nrow...1.<-NULL

for(N in 6:14){
for(i in 2:N){
for(j in 2:N){
for(k in 2:N){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}

data$$sum<-data$$Starks+data$$Parks+data$$Clarks

data<-data[data$sum<15,] data<-data[!is.na(data$$N),] data<-data[data$$N==data$$sum,] data$$product<-data$$Starks*data$$Parks*data$$Clarks data<-data[order(data$$product),] data$occurences<-NA

for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"])

}
data<-data[data$occurences!=1,] data<-data[data$$ParksClarks,] data<-data[data$$ClarksStarks,] for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"]) } #data<-data[data$occurences==1,]
colnames(data)[6]<-"House Number"

Kids1<-data[,c(2,3,4,6)]

data<-data.frame(matrix(ncol = 1,nrow = 1))

data$$N<-NA data$$Starks<-NA
data$$Parks<-NA data$$Clarks<-NA

data$matrix.ncol...1..nrow...1.<-NULL for(N in 9:14){ for(i in 4:9){ for(j in 2:3){ for(k in 3:5){ data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k)) } } } } data$$sum<-data$$Starks+data$$Parks+data$$Clarks data<-data[data$sum<15,]

data<-data[!is.na(data$$N),] data<-data[data$$N==data$$sum,] data$$product<-data$$Starks*data$$Parks*data$$Clarks data<-data[order(data$$product),]

data$occurences<-NA for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"]) } data<-data[data$occurences!=1,]

data<-data[data$$ParksClarks,]
data<-data[data$$ClarksStarks,]
for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"])

}

#data<-data[data$occurences==1,] colnames(data)[6]<-"House Number" Kids2<-data[,c(2,3,4,6)] data<-data.frame(matrix(ncol = 1,nrow = 1)) data$$N<-NA data$$Starks<-NA data$$Parks<-NA data$$Clarks<-NA data$matrix.ncol...1..nrow...1.<-NULL

for(N in 11:14){
for(i in 5:9){
for(j in 2:3){
for(k in 3:5){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}

data$$sum<-data$$Starks+data$$Parks+data$$Clarks

data<-data[data$sum<15,] data<-data[!is.na(data$$N),] data<-data[data$$N==data$$sum,] data$$product<-data$$Starks*data$$Parks*data$$Clarks data<-data[order(data$$product),] data$occurences<-NA

for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"])

}
data<-data[data$occurences!=1,] data<-data[data$$ParksClarks,] data<-data[data$$ClarksStarks,] for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"]) } #data<-data[data$occurences==1,]
colnames(data)[6]<-"House Number"

Kids3<-data[,c(2,3,4,6)]

data<-data.frame(matrix(ncol = 1,nrow = 1))

data$$N<-NA data$$Starks<-NA
data$$Parks<-NA data$$Clarks<-NA

data$matrix.ncol...1..nrow...1.<-NULL for(N in 12:14){ for(i in 6:9){ for(j in 2:3){ for(k in 3:5){ data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k)) } } } } data$$sum<-data$$Starks+data$$Parks+data$$Clarks data<-data[data$sum<15,]

data<-data[!is.na(data$$N),] data<-data[data$$N==data$$sum,] data$$product<-data$$Starks*data$$Parks*data$$Clarks data<-data[order(data$$product),]

data$occurences<-NA for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"]) } data<-data[data$occurences!=1,]

data<-data[data$$ParksClarks,]
data<-data[data$$ClarksStarks,]
for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"])

}

#data<-data[data$occurences==1,] colnames(data)[6]<-"House Number" Kids5<-data[,c(2,3,4,6)] data<-data.frame(matrix(ncol = 1,nrow = 1)) data$$N<-NA data$$Starks<-NA data$$Parks<-NA data$$Clarks<-NA data$matrix.ncol...1..nrow...1.<-NULL

for(N in 12:14){
for(i in c(6,9)){
for(j in 2:3){
for(k in 3:5){
data<-rbind(data,data.frame("N"=N,"Starks"=i,"Parks"=j,"Clarks"=k))
}
}
}
}

data$$sum<-data$$Starks+data$$Parks+data$$Clarks

data<-data[data$sum<15,] data<-data[!is.na(data$$N),] data<-data[data$$N==data$$sum,] data$$product<-data$$Starks*data$$Parks*data$$Clarks data<-data[order(data$$product),] data$occurences<-NA

for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"])

}
data<-data[data$occurences!=1,] data<-data[data$$ParksClarks,] data<-data[data$$ClarksStarks,] for (i in 1:length(data$$product)) { dataoccurences[i]<-length(data[dataproduct[i]==data$$product,"N"]) } #data<-data[data$occurences==1,]
colnames(data)[6]<-"House Number"

Kids6<-data[,c(2,3,4,6)]

• even after knowing the second hint (house number) he could not answer. Why? He needed the third hint. – DEEM Jun 24 at 12:07
• After the second hint, the house number he knew gave between 3 and 18 (out of 354 possible) solutions. The third hint then reduces the possible solutions to 19, one for each house number which gives a distinct solution when accounting for the ordering. John knows the answer, but it seems you haven't given enough information for us to know. – Thomas Markov Jun 24 at 12:39
• @Stiv I added a second table accounting for the assumption that each family has at least two kids. It’s not as simple as subsetting the first table. – Thomas Markov Jun 24 at 18:56
• Can't 6,3,5 be eliminated because there are no other sets of numbers that would multiply to get 90, and the three numbers (any numbers) total less than 15? If he saw house number 90, and knew it was less than 15 kids, there is no other combination of numbers. He could have answered yes to the second question before learning they are unique numbers. Similar for 84 at least. – Keeta Jun 24 at 19:46
• I'm a bit confused about the procedure in the last paragraph. John knows the full information at the end, we don't. True, we've learned about the possibilities for the number of children but I don't see why we can feed that information back to past John. It seems like this restriction relies on John knowing information at the beginning that we find out at the end. – hexomino Jun 25 at 9:06

Using @Thomas Markov's answer as a starting point, there are two further pieces of logic which need to be applied.

1. Prof Stark's opening statement:

"I have invited 2 more families: The Parks and the Clarks. The Parks' kids, the Clarks' kids and my kids are playing in the yard"

implies that each family has more than one child, due to the use of 'kids' (plural) in all 3 cases. This rules out all suggested solutions where one of the families has only 1 child.

1. Of the remaining responses, it isn't sufficient that all 3 answers are unique - there also has to be a second combination of seemingly valid numbers (i.e. totalling less than 15) which give the same product, but where one of the numbers is repeated.

Parks=2 Clarks=4 Starks=8

since

Their product 64 can also be made by 4 * 4 * 4

None of the other options listed in @Thomas Markov's answer can satisfy this criterion. (Thanks to @Thomas Markov)

• Actually, (3,4,6) also would work as there is (2,6,6) which would give the same product. – hexomino Jun 24 at 16:24
• And (2,3,9) would also satisfy as it has the same product as (3,3,6) – hexomino Jun 24 at 16:26
• @hexomino Garh, yes I spotted that as soon as I posted my answer! Hoping that having dinner helps me spot my missing link...! – Stiv Jun 24 at 16:36
• Also, if you read the comments under the question, I asked DEEM about the uniqueness of the possible solutions and it seems that (3,6,5) or (5,3,6), for example, would be considered distinct triplets so really we can only narrow down from Thomas Markov's set to the ones without a 1 - that is, 7 possibilities. – hexomino Jun 24 at 16:45

Following the most recent edit, it seems that John is, at first, unsure after Stark's last statement.
This means that we must have the following

1. The Clarks, Parks and Starks each has a distinct number of children greater than 1.
2. The product of the numbers of children is not unique among ordered triples of distinct positive integers whose sum is less than 15. (this is because John is still unsure at the end and is contrary to the line of reasoning Thomas Markov and others have been pursuing previously).

This means that the possibilities for the number of children (Parks, Clarks, Starks) after Stark's last statement are

(2,4,6), (2,3,8), (3,4,5) and (2,5,6)

In the new edit, it is then stated that John realises the answer after observing the children. That could mean that, for example,

He sees three sets of triplets - which would make the answer (3,4,5).

• Seeing three sets of triplets strikes me as counting, something expressly forbidden at the end of the question. Honestly, though, I'm starting to think this whole thing is a trainwreck... why do we need lateral-thinking to reduce the possibilities? We use lateral-thinking to increase our possibilities, right? – Dark Thunder Jun 25 at 12:15
• The answer can be correct the logic (mine) was different. Think Shakespere!! – DEEM Jun 25 at 12:18

1st part:

C + P + S = A

A < 15


2nd part:

C * P * S = B


This doesn't give John the answer despite him knowing B, so there must be multiple possible values for C,P and S that give the product B. It also tells us that all three families have at least one child (since house number zero tends not to exist).

3rd part:
Knowing that the values are all different is sufficient information to deduce the answer - this means that, whatever B is, there is only one set of factors C, P and S that all have distinct values. The greater the product is, the more likely that it will not have unique factors satisfying the 3rd clue, so we want B to be as low as possible.

From there, brute force seems to be the way forward. We know there have to be at least 6 children (1,2,3 being the smallest set of unique factors), so I'll start from there.

1 Park, 2 Clark, and 4 Starks, giving a total of 7 and a product of 8. 2,2,2 (or 1,1,8) would also give a product of 8, making it impossible to tell how many children each family had until the last clue.

EDIT - the solution doesn't appear to be unique:

1 Park, 2 Clarks and 3 Starks also seems to work, for a total and product of 6. 1,1,6 would also give a product of 6, which would match the house number and not allow for an answer before the last clue.

Note that:

House number 12, for example, doesn't work - it could be made from 1,2,6 or 1,3,4. John then wouldn't have had enough information to determine the number of children each family has. I haven't checked it for higher house numbers.

• Why wouldn't (1,2,3) work? Before the last Stark statement, (1,1,6) was also a possibility. – hexomino Jun 24 at 11:40
• Yeah, just realised that. Unless I'm missing something, there seems to be more than one possible solution – LogicianWithAHat Jun 24 at 11:53
• Lateral Thinking is a tag here. – DEEM Jun 24 at 11:56
• Using your logic, I think I've found 10 solutions. Although, if you assume that John will say "no" to the second question if he knows the number of children but not necessarily the order then this extends to 19 so you definitely need to tease out some additional information. – hexomino Jun 24 at 11:57
• Logically if any of those solutions UNIQUE, John would have guessed them after the second hint – DEEM Jun 24 at 12:49

From the intro "The Parks' kids, the Clarks' kids and my kids are playing in the yard."

there are at least 2 kids per family (from the plural "kids")

From Hint 1 "There are less than 15 kids total"

the maximum number of kids per family is 10 (10+2+2 = 14 < 15)

From Hint 2 "The product of the 3 numbers (number of kids each family has), is our house number which you saw coming in"

naming those numbers $$p$$, $$c$$ and $$s$$ and the house number $$h$$ $$p*c*s = h$$ and we get to know that John knows $$h$$

Now, from Hint 3 "Parks have less number of kids than the Clarks and the Clarks have less than us"

We need to find all combinations of $$p$$, $$c$$ and $$s$$ ranging from $$2$$ to $$10$$ where $$p+c+s < 15$$ and $$p < c$$ and $$c < s$$

$$p$$ $$c$$ $$s$$ $$h$$
$$2$$ $$3$$ $$4$$ $$24$$
$$2$$ $$3$$ $$5$$ $$30$$
$$2$$ $$3$$ $$6$$ $$36$$
$$2$$ $$3$$ $$7$$ $$42$$
$$2$$ $$3$$ $$8$$ $$48$$ not unique
$$2$$ $$3$$ $$9$$ $$54$$
$$2$$ $$4$$ $$5$$ $$40$$
$$2$$ $$4$$ $$6$$ $$48$$ not unique
$$2$$ $$4$$ $$7$$ $$56$$
$$2$$ $$4$$ $$8$$ $$64$$
$$2$$ $$5$$ $$6$$ $$60$$ not unique
$$2$$ $$5$$ $$7$$ $$70$$
$$3$$ $$4$$ $$5$$ $$60$$ not unique
$$3$$ $$4$$ $$6$$ $$72$$
$$3$$ $$4$$ $$7$$ $$84$$
$$3$$ $$5$$ $$6$$ $$90$$

so because John KNOWS $$h$$ he just looked in the table and got the solution
we never get to know $$h$$ but that is not necessary