webForumDet fria alternativet

Slump ingen slump?

.NET

6 svar · 617 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Jag försöker bygga en enkel win form med två bilder som ska växla efter en slumpmässig tid (en apa som rör på munnen :) ). Problemet är att min lösning inte alls verkar bli slumpmässig, det blir hela tiden ett "tidsmönster" i hur bilderna växlar mellan varandra? Någon som kan förklara varför? Koden:

        public Form1()
        {
            InitializeComponent();

            Timer t = new Timer();
            t.Interval = 50;
            t.Start();
            t.Tick += new EventHandler(GetRandom);
        }

        public void GetRandom(object sender, EventArgs eArgs)
        {
            Random random = new Random();
            if (random.Next(1, 3) == 1)
            {
                pictureBox1.Image = WinTest3.Properties.Resources.bild1;
            }
            else
            {
                pictureBox1.Image = WinTest3.Properties.Resources.bild2;
            }
        }
Medlem sedan jan. 20023 327 inlägg
#2

Testa följande:

        private Random random = new Random(DateTime.Now.Millisecond);

        public Form1()
        {
            InitializeComponent();

            Timer t = new Timer();
            t.Interval = 50;
            t.Start();
            t.Tick += new EventHandler(GetRandom);
        }

        public void GetRandom(object sender, EventArgs eArgs)
        {
            if (random.Next(1, 3) == 1)
            {
                pictureBox1.Image = WinTest3.Properties.Resources.bild1;
            }
            else
            {
                pictureBox1.Image = WinTest3.Properties.Resources.bild2;
            }
        }
Medlem sedan juli 200012 978 inlägg
#3

Är inte alla random ett mönster om man inte ger dem en seed?

Medlem sedan sep. 2004828 inlägg
#4

Det finns inte öht någon "slump" när det gäller datorer.
Ofta väljer man att basera slumpen på något som man likna slump, som till exempel millisekunderna. Det ger känslan av att vara slump, men är det egentligen inte alls.

Det ger dock ett slumpartat beteende.

Medlem sedan mars 20007 896 inlägg
#5

Som Stefan säger så är det psuedo-slump man brukar prata om när man genererar slumptal med datorer. För att komma så nära "riktig" slump som möjligt brukar man använda någon sorts apparatur för att avläsa kvantmekaniska processer, som t.ex. sönderfallet hos radioaktivitet.

Det finns en tjänst på nätet: http://random.org

Medlem sedan sep. 20025 506 inlägg
#6

Man kan förstås använda sig av Brownsk rörelse - t ex en kopp te - om man vill uppnå lämplig osannolikhet.

Medlem sedan sep. 2005673 inlägg
#7

Millisekunderna verkade göra susen... :)

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)