2013-06-09 3 views
-3

J'écris un code simple et je voudrais empêcher les nombres aléatoires en double.Comment éviter les nombres aléatoires en double

Quelle est la manière la plus simple de le faire?

Random rnd = new Random(); 

     int n1, n2, n3, n4, n5, n6, n7; 

     n1 = rnd.Next(1, 37); 
     n2 = rnd.Next(1, 37); 
     n3 = rnd.Next(1, 37); 
     n4 = rnd.Next(1, 37); 
     n5 = rnd.Next(1, 37); 
     n6 = rnd.Next(1, 37); 
     n7 = rnd.Next(1, 7); 

     Console.WriteLine("1 Number ({0})", n1); 
     Console.WriteLine("2 Number ({0})", n2); 
     Console.WriteLine("3 Number ({0})", n3); 
     Console.WriteLine("4 Number ({0})", n4); 
     Console.WriteLine("5 Number ({0})", n5); 
     Console.WriteLine("6 Number ({0})", n6); 
     Console.WriteLine("Additionl Number ({0})", n7); 
    } 
} 

}

+0

Pourquoi vous fixer ses limites max et min? –

+0

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/21ce91f4-9763-4f97-b558-16120c0583d3 – unlimit

+0

Bonjour Nikhil, que voulez-vous dire? –

Répondre

-1

J'ai eu le même problème. Utilisez ceci:

private static readonly Random random = new Random(); 
private static readonly object syncLock = new object(); 
public int RandomNumber(int min, int max) 
{ 
    lock (syncLock) 
    { // synchronize 
     return random.Next(min, max); 
    } 
} 

Utilisation

int randomNumber = RandomNumber(0, 10); // random number between 0 and 10 
+2

Vous supposez une application multithread, mais même avec un thread, vous pouvez obtenir des numéros en double. – Caramiriel