Slumpa fram tal 0,1 eller 2 som jag sen skall göra om till 1X2 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vafctrnd.asp Ok, tack. Nä, va fan snackar ni om? Men Men Viktigt, den kommer att slumpa samma sekvens varje gång Har man inte allt för höga krav på prestanda (VB tar ändå onödigt mycket under genereringen), så kan man göra en funktion istället:Slumpa tal 1X2
ett två eller tre
Är detta det bästa sätt att få riktig slump.
i = CInt(Rnd * 2)
tacksam för hjälpSv: Slumpa tal 1X2
<code>i = CInt(Int((2 - 0 + 1) * Rnd() + 0))</code>Sv: Slumpa tal 1X2
I skolan lärde jag mig ett det var skillnad men kommer inte ihåg exakt.
Har för mig det var något med att den tar ett slump tal ur Windows systemet på något speciellt sätt.
men jag är nöjd, tack!Sv: Slumpa tal 1X2
Rnd returnerar ett slumptal mellan 0 och 1.
För att öka "amplituden" multiplicerar man med Maxtal-Mintal+1, dvs. 2-0+1, och lägger till mintal, dvs 0. Men man behöver inte skriva ut dem. så 3*Rnd räcker gott.
Sen avkortar man och får då 0, 1 eller 2.Sv: Slumpa tal 1X2
programmet nystartas. Du skall därför ha Randomize i Form_Load
behövs bara en gång per programstart.
Randomize i Form_Load då blir det med automatik "seed"(frö) från Timern
Så här skriver du korrekt i = Int(Rnd * 3) 'blir 0 , 1 eller 2
Vill du ha 1 2 3 så skriver du i = Int(Rnd * 3 + 1) blir 1 , 2 eller 3
Obs siffran 3 här talar om vilket "spann" som skall slumpas då räknas även 0
Ex skriver du i = Int(Rnd * 100 ) kommer inte hundra med 0 - 99Sv: Slumpa tal 1X2
<code>
Public Function IntRandom(Low As Long, High As Long) As Long
IntRandom = Int((High - Low + 1) * Rnd + Low)
End Function
</code>