Visa ett inlägg
Oläst 2012-12-02, 23:00 #10
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
Jag jobbar ju inte med Ruby men i de flesta programspråk jag kört genom åren så måste man alltid själv definiera ett "frö", men som du visade så var det tydligen redan gjort i den funktion du använde.

Exempelvis skulle koden:
Kod:
numbers = new List<int>() { 23, 17, 13, 44, 51, 68, 37, 58, 9 };
var rnd = new Random();
numbers = numbers.OrderBy(x => rnd.Next()).ToList();
Ge samma resultat om man startar om programmet och kör igen. Det är det normala i de flesta pogramspråk.

I NET kan man lägga tilll följande kodelement för att själv styra fröet som styr slumpgenereringen. Static framför seed-variabeln gör att variabeln håller kvar sitt värde om den ligger som klassvariabel i en slumptalsklass, trots att man anropar slumpmetoden som en staticmetod, vilken var en liten behändig egenskap i sig.
Kod:
static int seed = Environment.TickCount;
var rnd = new Random(seed++);
Men däremot så var funktionen felaktig utifrån kravet, det gör inte vad kravställaren vill. Dvs väljer ett slumpmässigt element från en angiven lista där varje element är en int. Din lista visade bara siffrorna 1-5. utan någon initiering från användaren med valfria värden.

Listan skulle likväl kunnat innehålla följande värden:
Kod:
static int seed = Environment.TickCount;
var rnd = new Random(seed++);
numbers = new List<int>() { 23, 17, 13, 44, 51, 68, 37, 58, 9 };
numbers = numbers.OrderBy(x => rnd.Next()).ToList();
Nog om slumptal. Visa gärna hur du initierar med valfria heltalsvärden i en array i stället.
Kod:
[23, 17, 13, 44, 51, 68, 37, 58, 9].shuffle
Nerix är inte uppkopplad   Svara med citatSvara med citat