There are $N$ men. $K$ of them are knights, $M$ of them are jokers.
$N$ is known, $K$ and $M$ are unknown. You know that: $K + M = N$, $K \gt M$, $M \ge 1$, $N$ is odd.
Knights always tell the truth, jokers can tell whatever they want. All $N$ people know who is who. You go to anyone of them and ask him a yes-or-no question. You can repeat this procedure any number of times with the same man or with different men. It is not allowed to ask a question which the man is not able to answer with "Yes" or "No".
- How to determine who is who if you can ask only $2N$ questions?
- How to determine who is who with the minimum number of questions?
Explanations:
Each joker chooses what to tell according to unknown arbitrary algorithm. Examples of such algorithms: "Always tell Yes", "Throw a dice and tell Yes only if you throw a one, otherwise tell No.", "If it is raining tell Yes, otherwise tell No."
One question is asked to only one man and results in one answer (which provides 1 bit of information).
I do not know the author's solution. I have figured out a solution by my own, and now I would like to check whether it is correct. For this I need someone who figured out it independently. Also I don't have prove of optimality in b).
To show that the puzzle is "objective" and result is achievable, here is the solution for the case $N = 3$:
In this case there are 2 knights and 1 jokers.
1. Ask the first one "Is the second man a knight?". If he answers "Yes" then the 2nd is a knight. Indeed, let's suppose second is joker, then 1st is knight and he lied. If he answers "No" then 1st or 2nd is a joker and third is knight.
2. Ask the found knight "Is the first one a knight?" and you will identify one more person, the identity of the last one is derived from the fact that there is exactly one joker.
3. You need to identify 3 persons, which is 8 combination. $KKK, JJK, JKJ, KJJ, JJJ$ are discarded by condition $K \gt M, M \ge 1$, that leaves us with 3 combinations. So you can't do it in less than 2 questions - this is the minimum.