Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Felix
Anmeldungsdatum: 22.01.2008 Beiträge: 41 Wohnort: Breisach
|
Verfasst am: 25.01.2008, 21:38 Titel: Nur Gerade Zahlen nach Randomize? |
|
|
Hallo,
hab wiede rmal ne Frage... Die überschrift klingt wahrscheinlich etwas verwirrend. Was ich damit eigentlich mein: Ich habe ein Programm, dass mit dem Randomize Timer-Befehl eine zufällige Zahl zwischen 0 und 100 ausgibt.
Das Problem: Ich will, dass es nur gerad Zahlen sind, und dass, wenn es eine ungerade Zahl ist, einfach +1 gerechnet wird, aber das ist ja dann das kleinste Problem. Kennt jemand eine Mathematische Formel mit der man kontrollieren kann, ob die Zahl gerade ist oder gibt es dafür in QBasic sogar einen Befehl?
mfg, Felix |
|
Nach oben |
|
 |
Heizi

Anmeldungsdatum: 19.01.2005 Beiträge: 309
|
Verfasst am: 25.01.2008, 21:42 Titel: |
|
|
Mach einfach ne Zahl zwischen 0 und 50 und multiplizier mal 2...
Testen ob ne Zahl gerade ist kannst dü übrigens mit dem Befehl mod 2
also zB
PRINT 7 mod 2
MfG |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Felix
Anmeldungsdatum: 22.01.2008 Beiträge: 41 Wohnort: Breisach
|
Verfasst am: 25.01.2008, 22:18 Titel: |
|
|
Und wieder mal Vielen Dank!!
Vielen Dank für die schnelle Hilfe, und wieder einen Schritt näher an meinem fertigen Vokabeltrainer
mfg, Felix |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 27.01.2008, 15:00 Titel: |
|
|
Hi,
beim ausprobieren der Funktion GeradeZufallszahl% fiel mir auf, dass bei
GeradeZufallszahl%(1,5) und GeradeZufallszahl%(0,5)
auch die 6 als Rückgabewert berechnet wurde d.h. es kann auch ein Wert "Bis+1" ermittelt werden.
EDIT/
doch...
Code: | Zahl = INT(RND * (Bis-Von))+Von |
da INT die Zufallszahl abrundet ist das OK. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 27.01.2008, 18:19 Titel: |
|
|
Hallo
volta hat Folgendes geschrieben: |
EDIT/
doch...
Code: | Zahl = INT(RND * (Bis-Von))+Von |
da INT die Zufallszahl abrundet ist das OK. |
So ganz OK nicht glaube ich. Die Function liefert keine gleichmässige Verteilung des Zufalls. Nehmen wir das Beispiel GeradeZufallszahl%(0,5)
Als Werte ergeben sich die Zahlen 0, 2 und 4. So weit, so gut. Aber während die Werte 1 und 2 für Zahl das Ergebnis 2 liefern und 3 und 4 das Ergebnis 4, so kommt 0 als Wert für GeradeZufallszahl% nur bei Zahl=0 heraus. Die Chancen, 0 als Rückgabewert der Function zu erhalten, ist also nur halb so groß, wie für 2 oder 4. Wenn die obere Grenze auch eine gerade Zahl ist, tritt wegen der Rundung mit INT dort das selbe Problem auf. Ich glaube Heizis Vorschlag, einfach das abgerundete Ergebnis mal zwei zu nehmen ist besser. Man muss dann nur den Wertebereich vorher halbieren.
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
|