Bud fra igår...

Det er ikke sidste gang vi skal afholde en kode konkurrence som denne - sikke mange gode bud! Fantastisk folkens...

Lad os starte ud med det længste bud som kommer fra Klaus Hebsgaard

 //Klaus Hebsgaard
 public static string GetRandomString( int count )
 {
     Dictionary<int, string> entries = GetList();
  
     StringBuilder sb = new StringBuilder();
     for( int i = 0; i < count; i++ ) {
         int milli = DateTime.Now.Millisecond;
         string firstMilli = milli.ToString();
         Thread.Sleep( 21 );
         sb.Append( entries[ milli ] );
     }
     return sb.ToString();
 }
  
 public static Dictionary<int, string> GetList()
 {
     List<string> entries = new List<string>();
     entries.Add( "A" );
     entries.Add( "B" );
     entries.Add( "C" );
     entries.Add( "D" );
     entries.Add( "E" );
     entries.Add( "F" );
     entries.Add( "G" );
     entries.Add( "H" );
     entries.Add( "I" );
     entries.Add( "J" );
     entries.Add( "K" );
     entries.Add( "L" );
     entries.Add( "M" );
     entries.Add( "N" );
     entries.Add( "O" );
     entries.Add( "P" );
     entries.Add( "Q" );
     entries.Add( "R" );
     entries.Add( "S" );
     entries.Add( "T" );
     entries.Add( "U" );
     entries.Add( "V" );
     entries.Add( "X" );
     entries.Add( "Y" );
     entries.Add( "Z" );
     entries.Add( "Æ" );
     entries.Add( "Ø" );
     entries.Add( "Å" );
     entries.Add( "0" );
     entries.Add( "1" );
     entries.Add( "2" );
     entries.Add( "3" );
     entries.Add( "4" );
     entries.Add( "5" );
     entries.Add( "6" );
     entries.Add( "7" );
     entries.Add( "8" );
     entries.Add( "9" );
  
     List<string> newEntries = new List<string>();
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
     newEntries.AddRange( entries );
  
     return ToDict( newEntries );
 }
  
 private static Dictionary<int, string> ToDict( List<string> list )
 {
     Dictionary<int, string> dict = new Dictionary<int, string>();
  
     for( int i = 0; i < list.Count; i++ ) {
         dict.Add( i, list[ i ] );
     }
  
     return dict;
 }

Også tager vi dem i en lind strøm...

Brian Rasmussesn kom med følgende bud:

 //Brian Rasmussen
 public static string RandomString( uint length )
 {
     var buffer = new char[ length ];
     var timer = new Stopwatch();
     timer.Start();
     for( var i = 0; i < length; i++ ) {
         buffer[ i ] = (char)( 32 + timer.ElapsedTicks % ( length + i ) );
     }
     return new string( buffer );
 }

Også skal vi lige forbi Pernille Poulsen der kom med dette bud:

 static string RandWithoutRand( Int32 length )
 {
     StringBuilder sb = new StringBuilder();
     for( Int32 i = 0; i <= length; i++ ) {
         //Et "tilfældigt" hex-tal trylles frem:
         string hex = Guid.NewGuid().ToString().Substring( 1, 2 );
         //Hexværdien udtrykt i int 16. Tager modulus 25 og lægger 97 til for at få acsii værdierne 97-122 (små bogstaver)
         int hexvalue = ( Convert.ToInt32( hex, 16 ) % 25 ) + 97;
         // Det tilsvarende tegn
         char charValue = (char)hexvalue;
         sb.Append( charValue );
     }
     //og taaa-naaa en tilfældig streng: 
     return sb.ToString();
     // <:O) God jul
 }

Niklas Petersen har skrevet følgende klasse:

 //Niklas Petersen
 public class RandomString
 {
     private const uint a = 1664525;
     private const uint c = 1013904223;
     private const uint m = uint.MaxValue;
  
     private uint next;
  
     public RandomString()
     {
         next = (uint)Environment.TickCount;
     }
  
     private double Rand()
     {
         /* Linear congruential generator */
         next = next * a + c % m;
         return next * ( 1.0 / m );
     }
  
     public string GetText( int length )
     {
         string t = string.Empty;
         for( int i = 0; i < length; i++ )
             t += (char)( 65 + Rand() * 25 );
         return t;
     }
 }

Og det sidste bud Rasmus Larsen:

 //Rasmus Larsen
 public static string Generate( int length )
 {
     var result = string.Empty;
     var alphabet = "abcdefghijklmnopqrstuvwxyzæøå";
  
     // Base our randomness on time
     var randomSeed = DateTime.Now.Ticks;
  
     for( var i = 0; i < length; i++ ) {
         // Generate a random number within the length of the alphabet string.
         var randomNumber = (int)( randomSeed % alphabet.Length );
         result += alphabet[ randomNumber ];
  
         // "Randomize" our seed and make sure it's positive.
         randomSeed *= 13;
         randomSeed = Math.Abs( randomSeed );
     }
  
     // Ensure that we don't get the name number of ticks if calling 
     // the function repeatedly. Could use a static integer in the
     // class too, but this is contained within the function.
     Thread.Sleep( 1 );
  
     return result;
 }

Det er svært at sige hvem der skal vinde den her, så derfor grubler jeg lige et par timer og vender tilbage...