# A combinatorics challenge. Counting members and totals of a random group

This combinatorics challenge. Counting members of a group in a real world situation.. with a very strange data pool.

I need to count a mass of people divided into random groups, from each group member's report of who they have heard speaking in their group over time.

I have 100 people in a large meeting. Each person is assigned a unique ID number from Person #1 to Person# 100.

At some point I ask the 100 to divide up into groups. The 100 people can be in any number of groups. They become part of their group with a completely random selection process, so a group can have 2 to 100 people. If all are groups of 2 this could be 50 groups max.

Some people did not get into a group.

Different groups cannot hear each other.

So here is the challenge.

Each person in a group can be a speaker or a listener, but not both at the same time.

During the "Group Counting Period", Listeners must record the ID number of the person who is talking, thereby adding the person's ID number as member of their group

With using only Talking and Listening as data points, how can I know the numerical IDs of members in a group, from a database report from listeners on who they heard talking.

People who talk, do so at random, but they can only talk ONCE. After that, they must only listen (and report). Once someone starts talking, no one can interrupt them for the 10 second talking period.

At some point, in some groups, more that 1 talker may start at the exact same time and talk together, in which case the listeners may report that they have heard x+ talkers.

If the time to switch from talking to listening is 10 seconds. How long will this take for all group members to report who they know to be in their group.

Their reporting method is after the 10 second interval, each listener types their identified talkers ID into a database entry.

I am unsure if I allow the talkers to be chosen via lottery, math. or simply let this all happen randomly and asynchronously... where eventually , all groups have cycled through talking and listening and their confidence is high that know the ID numbers of ALL members in their group.

The other idea is I control this by a dynamic learning process, and select specific talkers based on latest database results to speed up the process.

At the end of the "group counting period", the database should then know the count of each group and the members ID.

People not in a group, are simply "groups of 1" in their own section.

Does anyone have any idea of how to calculate the "group counting period" (i.e. how long will this take) , and the rules to improve this time by controlling who the talkers should be at any 10 second interval.

This was actually a real problem for a convention, and we seeking ideas to track group metrics, with the only data points available (listeners reports of talkers).

Ideally we could come up with an algorithm to assign talkers based on real time listener data to complete the group tally as quickly as possible.

Thanks

John Stamford CT

• Maybe I should add this.. If you could take the time to help and hear this in more detail, we could pay for the right math solution. – John Tavernisi Jul 6 '16 at 4:02
• Can you clarify what happens when "more than one talker may start at the exact same time and talk together"? What exactly are the Listeners reporting in that case? Both ID numbers or a null data point? – pseudoeuclidean Jul 6 '16 at 5:27
• After reading this over and over, I am almost certain that we need to mathematically define the process by which the groups are formed. Once we do that, we can construct a probability density curve representing the probability that a random group has $n$ members in it. The average number of members in each group will ultimately lead us to the answer of how long it will take the average group to finish recording its members. – pseudoeuclidean Jul 6 '16 at 5:43
• The upper bound of the time it will take the groups to finish recording its members is obviously 1000 seconds, but that is only true when we have 100 groups of 1 (a highly unlikely case)... Come to think of it, in a group of 1, there will be no Listeners to report the ID of the Talker, so participants in a group of 1 can only be identified by deductive reasoning. – pseudoeuclidean Jul 6 '16 at 5:47
• So for question 1> If two talkers decide to speak without a queue from a prompter (administrator) then they both may start speaking at the same time. This takes me to the idea that we should CHOOSE who talks.. and start out with a list of talkers.. and after the first 10 seconds, and the report from the listeners, choose another group of talkers. THAT would work because we could use the reported list to make sure that we do not allow two talker within group. So the trick would be who talking BEFORE we have a first data sample. – John Tavernisi Jul 6 '16 at 7:10