J'avais supposé que les membres soient une liste liée et à ajouter le compteur et gratuitement (PTR). Je me trompe peut-être ... offrez-vous à des idées utiles p>
merci à ... p>
5 Réponses :
En supposant que tout le monde puisse parler à son voisin (éventuellement sur de nombreux sièges vides) et que les fans d'équipe A sont disposés à parler aux fans de l'équipe B, ce qui suit pourrait fonctionner: P>
Tout le monde attrape son voisin le plus proche, qui n'est pas déjà attrapé par quelqu'un d'autre, de former des groupes d'au plus deux personnes. Maintenant, tout le monde se souvient de la taille du groupe dans lequel ils se trouvent (peuvent être 1 ou 2). Maintenant qu'un chef de chaque groupe est choisi de manière à pouvoir communiquer à un membre d'un autre groupe. Les dirigeants de chaque groupe tentent de rejoindre leur groupe avec un autre et chaque membre des deux groupes (maintenant rejoints) se souvient de la somme des membres de chaque groupe (cela peut être fait en diffusant la nouvelle valeur à ajouter au groupe) . Ce processus continue jusqu'à ce qu'il ne reste qu'un seul groupe. Lors de la résiliation de ce processus, tout le monde connaît le nombre de personnes du stade. P>
J'espère que cela aide. P>
+1, votre solution n'a pas besoin de trop de dégusage de symétrie et aucune possibilité de compter en double. Vous pouvez modifier pour permettre une stratégie d'élection de leader.
Pour chaque colonne, un leader est choisi avec la règle "La personne de la rangée la plus proche du champ est le leader" (ces sièges sont généralement remplis). Le chef initie un nombre de personnes dans cette colonne de la manière suivante:
1. Sermez la main avec la personne directement assis derrière, et demandez-vous: "Vous?"
2. Si personne n'est derrière la personne, la réponse doit être 1 code>, ou bien faire l'étape 1 avec la personne derrière, et la réponse est une autre que la réponse de la personne derrière.
3. Le chef écrit immédiatement ce numéro sur une planche et la maintient de la part de
4. Parmi ces dirigeants, la plus jeune personne devrait commencer à collecter ces conseils et les ajouter. Si elle rencontre une personne plus jeune que ses conseils de collecte, le comte jusqu'à ce qu'il soit remis à l'autre personne. Si le même âge, la personne la plus grande prendrait la relève. P>
Dans un petit stade, il y a plusieurs mille personnes dans les stands. Concevoir un algorithme distribué permettant à la audience à compter elle-même. P> blockQuote>
Feynman réponse (voir Round Manhole Question ): Est-ce que tout le monde crie "plusieurs milliers!" < / p>
+1, la réponse est dans la question ... Sorte du bouddhiste mu code> chose
Voici un autre algorithme: p>
Avec cet algorithme, vous pouvez faire face à des erreurs. P>
Votre solution pourrait fonctionner, mais ne semble pas distribuer la charge.
Vous avez raison. C'est une extrême extrême de calcul parallèle (ou plusieurs agents en général): chaque agent calcula toute la tâche. C'est extrêmement tolérant à une faute. L'autre extrême est: chaque agent écrit "+1" sur un papier et donne à cet article à un agent de contrôleur.
Qu'est-ce que spécialement i> est votre question ici?
Quel algorithme m'aiderait-il à résoudre le problème ci-dessus avec la complexité min
Je ne pense pas que cela soit possible en général. Par exemple, et si c'est un grand stade avec seulement 2 personnes, et ils ne sont pas dans la plage de communication les uns des autres?