Tjena, > Random r = new Random(); Nyttan med att talen alltid kommer i ordning är att man kan återupprepa sina försök. Provade detta, men det blev ingen skillnad: Det är eftersom det går för fort, tiden hinner inte ändras. (alltså samma frö) string m = ""; Men om jag använder det där så blir nästan alltid 3 av fem resultat lika... Är det så konstigt? Jag skulle påstå att och?:s kod funkar utmärkt. Det är inget annat skumt du gör? Typ avrundar eller nåt. Har du verkligen kört exakt samma kod som Och? och får ut tre av fem tal som identiska? Det borde i så fall vara ett slumpmässigt under.... Jag kom oxså att tänka på avrundning nu. Hade gjort en liten miss i mitt program. Det funkade att göra som ni sa!Slumptal med Random()
Har följande kod för att generera 6 olika slumptal. Om ni kör koden kommer ni märka att man får nästan exakt samma 6 slumptal. Varför? Finns det något sätt att lösa detta på? Jag vill ha SLUMPTAL och inte exakt lika tal...
string m = "";
for (int i = 0; i < 6; i++)
{
Random r = new Random();
m += r.NextDouble().ToString() + "\n";
}
MessageBox.Show(m);Sv: Slumptal med Random()
Du ska nog seed:a där, alltså ge ett startvärde som den ska "slumpa" efter.
En dator kan ju inte slumpa så följdaktligen kan du inte få slumptal från randomfunktionen. Du får bara så kallade "psuedo random numbers", dvs halv-slumpade tal. Tal som vid en första anblick ser slumpade ut, men som är matematiskt beräknade utifrån en formel och det värde du anger till random (seed).
I CryptoAPI:t finns en randomfunktion som har fler startvärden än du anger och därmed ger bättre halvslumpade tal. Det är tänkt att användas till kryptering där äkta slumptal är ett krav. Men du borde klara dig med den vanliga randomfunktionen.Sv: Slumptal med Random()
Väldigt jobbigt om ett program skulle krascha och sen kan man inte backa o kolla vilka tal som slumpades fram.
Jag tror Thomas glömde att nämna att fröet förmodligen måste variera mellan körningarna oxså.
Normalt sett anger det bara var i serien man ska starta, samma frö ger fortfarande lika tal.
Jag skulle ha använt mig av tiden i millisekunder lr något liknande som frö.Sv: Slumptal med Random()
Random rnd = new Random(DateTime.Now.Millisecond);
digit = (int)Math.Round(rnd.NextDouble() * 5, 0) + 1;
Någon som har något förslag på vad man kan göra?Sv: Slumptal med Random()
MS förslag är den normala lösningen. (Alltså anänd fröet till att skapa din serie och slumpa sedan fram talen med next().)
Det är nog (jag reserverar mig för fel här) bara om du vill ha oberoende slumptalsfördelningar du behöver ange ett nytt frö.Sv: Slumptal med Random()
Random r = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < 6; i++)
{
m += r.NextDouble().ToString() + "\n";
}
MessageBox.Show(m);
Fungerar väl som du vill?
Resten är statistiskt krimskrams. :D
Men säg att man vill representera två individuella objekt, då vill man inte ha ett beroende mellan slumptalen.
Istället generarar man två olika följder av slumptal.Sv: Slumptal med Random()
Det måste finnas något annat sätt....Sv: Slumptal med Random()
Kan du generera en lista med tal o visa.
Typ:
Omgång tal1 tal2 tal3 tal4..
Jag har tyvärr ingen möjlighet att testa själc nu.Sv: Slumptal med Random()
Sv: Slumptal med Random()
Ricki säg att vi avrundar till närmaste heltal:
0.0<x<0.5=0
0.5<x<1.5=1
.
.
.
4.5<x<5.5=5
5.5<x<6.0=6
Intervallen för 0 och 6 blir bara hälften så stora som de andra.Sv: Slumptal med Random()
Tack för all hjälp!