Citat:
Ursprungligen postat av yakuzaemme
Conny, hur menar du att Random() ger samma resultat om man kör det igen? Du måste inte ge något frö för att det inte ska bli samma som förut, och du behöver heller inte specificera Environment.Tickcount, för den är redan baserad på tid.
|
Ja, så är det. random måste initieras med ett frö som man tvingar vara oregelbundet annars kommer slumpserien att riskera att upprepas vid flera anrop. Bland annat måste du som jag exepmplifierat skriva seed++ i anropet till random så att det vid extremt hög anropsfrekvens ska vara garanterat olika frö.
Detta är inget ovanligt utan så har alla programspråk fungerat sedan jag först började programmera på slutet av 1970-talet. Nu har jag även konstaterat att Ruby inte är något undantag utan man måste initiera med ett "frö" för att hindra att slumpserien upprepas, det är fortfarande ingen garanti att talet är slumpmässigt men det är det bästa man kan åstadkomma i datorn idag.
Sök på "Random seed" på internet så hittar du säkert massvis med artiklar just om detta fenomen.