Por lo tanto, no establecí el número de personas de ojos azules en exactamente 100. En cambio, hice que el color de los ojos fuera aleatorio con la posibilidad de que cada persona con ojos azules fuera 1 de cada 10.
vacío estático Main ()
{
var numBlueEyes = 0;
var rand = new Random ();
var numIslanders = 1000;
var isBlueEyed = new bool [numIslanders];
Console.Write (“Información secreta: isleño [s] con ojos azules:”);
para (int i = 0; i <numIslanders; ++ i)
{
// según la definición del problema 1 de cada 10 tiene ojos azules
var blueEyed = rand.Next (10) == 0;
isBlueEyed [i] = blueEyed;
si (blueEyed)
{
++ numBlueEyes;
Console.Write (i + “”);
}
}
// solo una probabilidad de 0.9 ^ numIslanders de que esto suceda, pero en aras de la exhaustividad
if (numBlueEyes == 0)
{
var unluckyGuy = rand.Next (numIslanders);
isBlueEyed [unluckyGuy] = verdadero;
numBlueEyes = 1;
Console.Write (unluckyGuy);
}
Console.WriteLine ();
Console.WriteLine (“Información secreta: Hay {0} {1} ojos azules {2} en esta isla \ n”,
numBlueEyes == 1? “is”: “are”, numBlueEyes, numBlueEyes == 1? “personas gente”);
var numPeopleDied = 0;
// Una vez que todos los ojos azules se hayan ido, el resto sabe que no tienen ojos azules
// Pero no saben si tienen ojos marrones, verdes o morados.
// Nunca tendrán que suicidarse.
for (int day = 1; day <= numIslanders && numPeopleDied <numBlueEyes; ++ day)
{
for (int islander = 0; islander <numIslanders; ++ islander)
{
var numPeopleIslanderSeesWithBlueEyes = isBlueEyed [islander]?
numBlueEyes – 1: numBlueEyes;
- ¿Alguien puede resolver el siguiente enigma y si lo has visto, entonces dónde?
- ¿Cuáles son algunos de los mejores rompecabezas o juegos basados en psicología?
- ¿Cuántas horas-persona se gastan cada año en la búsqueda misteriosa del MIT?
- ¿Se puede resolver un cubo de Rubik sin sus algoritmos?
- Un día una niña celebró su cumpleaños. Dos días después, su hermano gemelo mayor celebró el suyo. ¿Cómo es esto posible?
if (numPeopleIslanderSeesWithBlueEyes + 1 == día)
{
++ numPeopleDied;
if (numPeopleDied == 1)
{
Console.Write (“Islander [s] muriendo en el día {0}:”, día);
}
Console.Write (“” + isleño);
}
}
}
Console.ReadLine ();
}