Onko VB:ssä käskyä, jolla saisi vain parillisen tai vaihtoehtoisesti vain parittoman satunnaisluvun.
Jos ei niin löytyisiköhän siihen mahdollisesti jokin
lauseke joka tämän toteuttaa...
'Mod 2' on vastaus ongelmaasi. Tuolla voit testata, että onko luku jaollinen kahdella vai ei. Näin siis saat joko parillisen tai parittoman alkulukun. Ja Randomize on sitten satunnaislukua varten.
Muistaakseni
mod 2 = false
lause antaa vastauksia jos luku EI ole jaollinen kahdella.
Ja sitten tuo satunnaisluku eli ensin koodiin:
Randomize
Ja sitten
Int(9 * Rnd + 1) , jossa luku 9 on kertoja. Tuo lause antaa luvun väliltä 1-10 jos nyt en ihan väärin muista tuota syntaksia...
Siis piti sanomani, että saa joko parillisen tai parittoman satunnaisluvun eikä alkuluvun. Alkuluku on hieman eri asia...
Ei kun tuo antaa luvun 1 ja yhdeksän väliltä.
Sen pitää olla
INT(RND*10+1)
Wizardin taktiikalla menee siis näin:
Randomize Timer Dim luku As Integer luku = Int(Rnd * 10) + 1 Do Until luku Mod 2 = 0 '0 = parillinen luku, 1 pariton luku = Int(Rnd * 10) + 1 Loop MsgBox "Parillinen luku väliltä 1 - 10: " & luku
Toinen tapa on arpoa puolta pienempi luku kuin on tarpeen ja kertoa se kahdella. Parittoman luvun saa vähentämällä tästä luvusta yhden.
Randomize Timer Dim luku As Integer luku = Int(Rnd * 5) + 1 '10 / 2 = 5 luku = 2 * luku 'parillinen luku 'luku = 2 * luku - 1 'pariton luku MsgBox "Parillinen luku väliltä 1 - 10: " & luku
Katso myös:
http://vb.ohjelmointiputka.net/?Rnd
Aihe on jo aika vanha, joten et voi enää vastata siihen.